Tırnak işaretlerini, boşlukları ve "egzotik" Unicode karakterlerini içeren bir dizeyi kodlayacak ve JavaScript'in encodeURIComponent işleviyle aynı çıktıyı üretecek bir şey bulmaya çalışan çeşitli Java kod parçalarını deniyorum .
İşkence test dizim: "A" B ± "
Firebug'a aşağıdaki JavaScript ifadesini girersem:
encodeURIComponent('"A" B ± "');
-Sonra şunu alırım:
"%22A%22%20B%20%C2%B1%20%22"
İşte küçük test Java programım:
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
public class EncodingTest
{
public static void main(String[] args) throws UnsupportedEncodingException
{
String s = "\"A\" B ± \"";
System.out.println("URLEncoder.encode returns "
+ URLEncoder.encode(s, "UTF-8"));
System.out.println("getBytes returns "
+ new String(s.getBytes("UTF-8"), "ISO-8859-1"));
}
}
- Bu programın çıktıları:
URLEncoder.encode% 22A% 22 + B +% C2% B1 +% 22 döndürür getBytes "A" B ± "döndürür
Kapat, ama puro yok! Java kullanarak bir UTF-8 dizesini kodlamanın en iyi yolu nedir, böylece JavaScript'le aynı çıktıyı üretir encodeURIComponent
?
DÜZENLEME: Java 1.4 kullanıyorum, kısa süre içinde Java 5'e geçiyorum.