이유:
Http 요청 전송은 서버가 바이트 스트림을 수신한 후 로 인코딩됩니다. ISO-8859에서는 기본적으로 -1
인코딩을 사용하여 문자 스트림으로 디코딩합니다(중국어 문자 깨짐 발생). ISO-8859-1
编码,服务器收到字节流后默认会以ISO-8859-1
编码来解码成字符流(造成中文乱码)。
方法一:
我们需要把request.getParameter
(“参数名”)
ISO-8859-1을 사용해야 합니다. 1은 바이트 스트림으로 인코딩된 다음 UTF-8을 사용하여 문자 스트림으로 디코딩됩니다. String str = new String(request.getParameter("参数名").getBytes("iso-8859-1"), "utf-8");
이것은 트랜스코딩을 통해 왜곡된 문제를 해결하기 위한 것입니다.
java video
방법 2:Tomcat 구성 파일을 통해 URL 인코딩 세트(URIEncoding)를 설정하여 인코딩을 설정할 수도 있습니다. 그리고 모두를 위해.
Tomcat/conf 디렉터리에서 server.xml 파일을 수정하세요<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8444" useBodyEncodingForURI="true" URIEncoding="UTF-8"/>userBodyEncodingForURI 및 URIEncoding 두 가지 속성에 중점을 둡니다.
useBodyEncodingForURI 매개변수
는 URL로 제출된 데이터와 GET 메소드로 제출된 데이터를 양식에 다시 인코딩하기 위해 request.setCharacterEncoding 매개변수를 사용할지 여부를 나타냅니다. 기본적으로 이 매개변수는 false입니다. 🎜🎜🎜🎜URIEncoding 매개변수 🎜🎜🎜🎜는 모든 GET 요청 요청의 균일한 재인코딩(디코딩)을 위한 인코딩을 지정합니다. 🎜URIEncoding과 useBodyEncodingForURI
URIEncoding의 차이점은 모든 GET 요청 데이터를 통합적으로 기록한다는 것입니다.
useBodyEncodingForURI는 요청에 응답하는 페이지의 request.setCharacterEncoding 매개변수를 기반으로 데이터를 다시 인코딩합니다. 페이지마다 다른 다시 인코딩 코드가 있을 수 있습니다.
추천 관련 기사 및 튜토리얼: Java 입문 프로그램
위 내용은 URL이 Java에서 중국어 매개변수를 전달할 때 잘못된 문자가 나타납니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!