url 중국어로 왜곡된 java
1. 문자열을 트랜스코딩합니다: newString("xxxxx".getBytes("iso-8859-1"),"utf-8")
이 트랜스코딩은 이 메서드는 지정된 문자 집합을 사용하여 이 문자열을 바이트 시퀀스로 인코딩하고 결과를 새 바이트 배열에 저장한 다음 지정된 문자 인코딩을 사용하여 생성된 바이트 배열을 변환하고 새 문자열을 구성하기 때문에 큰 단점이 있습니다. 이 경우 한자 하나를 완전히 해독할 수 없는 상황이 발생할 수 있습니다. 이렇게 하면 이전 단어는 정상적으로 표시되지만 마지막 단어가 깨질 수 있습니다.
그래서 이 방법은 사용하지 않는 것이 좋습니다.
2. 매개변수를 전달하기 전에 트랜스코딩하고 매개변수를 받은 후 다시 트랜스코딩합니다.
두 가지 방법이 있습니다:
첫 번째 방법:
매개변수를 전달하기 전: java.net.URLEncoder.encode("xxxx", "utf-8")을 사용하여 중국어를 16진수 문자로 변환합니다.
매개변수를 받은 후: java.net.URLDncoder.decode("xxxx", "utf-8")를 사용하여 16진수 문자를 중국어로 변환합니다.
이 방법에서 주의할 점은 인코딩을 사용하면 특수 문자가 나타난다는 것입니다. 이때 특수 문자를 해당하는 16진수로 바꿔야 합니다. 특수 문자도 URL 경로에 매개변수로 전달되면 왜곡되기 때문입니다.
두 번째 유형:
매개변수 전달 전: encodeURI("xxxx").
매개변수 수신 후: java.net.URLDncoder.decode("xxxx", "utf-8")를 사용하여 16진수 문자를 중국어로 변환합니다.
이 방법에서 주의할 점은 encodeURI를 사용하여 트랜스코딩한 후 특수 문자가 표시된다는 점입니다. 이때 특수 문자를 트랜스코딩해야 하므로 encodeURI를 두 번 사용합니다. 즉,
encodeURI (encodeURI (" xxxx”)).
이 두 가지 트랜스코딩 방법은 매우 유용하므로 모든 사람이 사용하는 것이 좋습니다.
특정 사용법:
1. 클라이언트:
url=encodeURI(url);
서버:
String linename = new String(request.getParameter(“name”).getBytes(“ISO-8859-1”),“UTF-8”);
2. 클라이언트:
url=encodeURI(encodeURI(url)); //用了2次encodeURI
서버:
String linename = request.getParameter(name); //java : 字符解码 linename = java.net.URLDecoder.decode(linename , “UTF-8”);
php 중국어 웹사이트, 수많은 무료 Java 입문 튜토리얼을 환영합니다. 온라인!
위 내용은 Java URL이 중국어로 왜곡된 경우 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!