> Java > Java베이스 > 본문

Java URL이 중국어로 왜곡된 경우 어떻게 해야 합니까?

angryTom
풀어 주다: 2019-11-15 09:46:18
원래의
3423명이 탐색했습니다.

Java URL이 중국어로 왜곡된 경우 어떻게 해야 합니까?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿