따옴표, 공백 및 "이국적인"유니 코드 문자를 포함하는 문자열을 인코딩하고 JavaScript의 encodeURIComponent 함수와 동일한 출력을 생성하는 것을 시도하는 다양한 Java 코드를 실험 해 왔습니다 .
내 고문 테스트 문자열 : "A"B ± "
Firebug에 다음 JavaScript 문을 입력하면 :
encodeURIComponent('"A" B ± "');
-그런 다음 얻을 수 있습니다.
"%22A%22%20B%20%C2%B1%20%22"
다음은 내 작은 테스트 Java 프로그램입니다.
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"));
}
}
-이 프로그램은 다음을 출력합니다.
URLEncoder.encode는 % 22A % 22 + B + % C2 % B1 + % 22를 반환합니다. getBytes는 "A"B ± "를 반환합니다.
닫히지 만 시가는 없습니다! JavaScript와 동일한 출력을 생성하도록 Java를 사용하여 UTF-8 문자열을 인코딩하는 가장 좋은 방법은 무엇입니까 encodeURIComponent
?
편집 : Java 1.4를 사용하여 곧 Java 5로 이동합니다.