>  기사  >  Java  >  URL이 Java에서 중국어 매개변수를 전달할 때 잘못된 문자가 나타납니다.

URL이 Java에서 중국어 매개변수를 전달할 때 잘못된 문자가 나타납니다.

王林
王林원래의
2019-12-05 14:05:032336검색

URL이 Java에서 중국어 매개변수를 전달할 때 잘못된 문자가 나타납니다.

이유:

Http 요청 전송은 서버가 바이트 스트림을 수신한 후 로 인코딩됩니다. ISO-8859에서는 기본적으로 -1인코딩을 사용하여 문자 스트림으로 디코딩합니다(중국어 문자 깨짐 발생). ISO-8859-1编码,服务器收到字节流后默认会以ISO-8859-1编码来解码成字符流(造成中文乱码)。

方法一:

我们需要把request.getParameter(“参数名”)

방법 1:

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.