java는 URLDecoder와 URLEncoder를 사용하여 중국어를 처리합니다.
2404 단어 URLDecoderURLEncoder
URLEncoder
HTML 형식 인코딩의 유틸리티 클래스입니다.이 클래스는 String을 응용 프로그램/x-www-form-urlencoded MIME 형식으로 변환하는 정적 방법을 포함합니다.HTML 형식 인코딩에 대한 자세한 내용은 HTML 사양을 참조하십시오.
String을 인코딩할 때 다음 규칙을 사용합니다.
알파벳 문자 "a"부터 "z", "A"부터 "Z", "0"부터 "9"까지 변경되지 않습니다.
특수 문자 ".","-", "*"및 "_"변하지 않다.
공백 문자 ""은 더하기 기호 "+"로 변환됩니다.
모든 다른 문자는 안전하지 않기 때문에 우선 인코딩 메커니즘을 사용하여 그것들을 한 바이트 또는 여러 바이트로 변환합니다.그리고 바이트마다 세 글자를 포함하는 문자열'% x y'로 표시합니다. 그 중에서xy는 이 바이트의 16진법 두 자리입니다.권장되는 인코딩 메커니즘은 UTF-8입니다.그러나 호환성을 고려하여 인코딩을 지정하지 않으면 해당 플랫폼의 기본 인코딩을 사용합니다.
예를 들어 UTF-8 인코딩 메커니즘을 사용하면 문자열 "The string ü @foo-bar"는 "The +string +% C3% BC% 40foo-bar"로 변환됩니다. 왜냐하면 UTF-8에서 문자 ü 인코딩은 두 바이트, C3 (16진수) 과 BC (16진수), 문자 @ 인코딩은 한 바이트 40 (16진수) 이기 때문입니다.
2URLDecoder
이 클래스는 String을 응용 프로그램/x-www-form-urlencoded MIME 형식에서 디코딩하는 정적 방법을 포함합니다.
이 변환 과정은 URLEncoder 클래스가 사용하는 과정과 정반대입니다.인코딩된 문자열의 모든 문자는 다음 중 하나라고 가정합니다. "a"부터 "z", "A"부터 "Z", "0"부터 "9", "-", "_","."그리고 "*""%"문자가 허용되지만 특수 이스케이프 시퀀스의 시작으로 해석됩니다.
변환에는 다음 규칙이 사용됩니다.
알파벳 문자 "a"부터 "z", "A"부터 "Z", "0"부터 "9"까지 변경되지 않습니다.
특수 문자 ".","-", "*"및 "_"변하지 않다.
더하기 기호 "+"는 공백 문자 ""로 변환됩니다.
'% x y'형식의 서열을 한 바이트로 간주합니다. 그 중에서 xy가 8자리인 두 개의 16진법은 형식을 나타냅니다.그리고 모든 연속은 이 바이트 서열을 하나 이상 포함하는 하위 문자열을 인코딩하여 이 연속 바이트를 생성할 수 있는 문자열로 대체합니다.이 문자들을 디코딩하는 인코딩 메커니즘을 지정하거나 지정하지 않으면 플랫폼의 기본 인코딩 메커니즘을 사용합니다.
이 디코더가 불법 문자열을 처리하는 데는 두 가지 방법이 있다.한 가지 방법은 이 불법 문자를 막론하고 다른 방법은 Illegal Argument Exception 이상을 던지는 것이다
간단한 예:
try {
String encodeStr = URLEncoder.encode(" ", "utf-8");
System.out.println(" :" + encodeStr);
String decodeStr = URLDecoder.decode(encodeStr, "utf-8");
System.out.println(" :" + decodeStr);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
실행 결과:
:%E4%B8%AD%E5%9B%BD
:
읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!