Java에서 잘못된 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”))。
url=encodeURI(url);
String linename = new String(request.getParameter(“name”).getBytes(“ISO-8859-1”),“UTF-8”);
url=encodeURI(encodeURI(url)); //用了2次encodeURI
서버:
String linename = request.getParameter(name);
java: 문자 디코딩
linename = java.net.URLDecoder.decode(linename , “UTF-8”);
더 많은 Java 지식을 보려면
java 기본 튜토리얼위 내용은 Java에서 잘못된 URL에 대한 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!