>Java >java지도 시간 >JavaEE 개발 시 잘못된 문자 인코딩 문제를 해결하는 방법

JavaEE 개발 시 잘못된 문자 인코딩 문제를 해결하는 방법

巴扎黑
巴扎黑원래의
2017-07-21 17:03:201777검색

인터넷에는 문자 인코딩을 다루는 솔루션이 많이 있습니다. 여기서 저는 선배들의 어깨 위에 서서 나만의 요약을 작성합니다.

제 생각에는 잘못된 코드 문제에 대한 해결책은 간단히 세 위치에 인코딩을 설정하는 것입니다:

 1. HTML 및 JSP와 같은 프런트 엔드 페이지

 2. 백그라운드 서블릿의 요청 및 응답 개체;

 3. 서버 구성 파일.

1. HTML, JSP 등 프런트 엔드 페이지에 인코딩이 나타나는 경우 먼저 프런트 엔드 페이지의 메타 태그에 인코딩이 올바르게 설정되어 있는지 확인하세요. 이 메타 태그도 페이지의 헤드입니다.

<span style="background-color: #ffff00; color: #000000"><%</span><span style="background-color: #f5f5f5; color: #000000">@ page language</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #800000">"</span><span style="background-color: #f5f5f5; color: #800000">java</span><span style="background-color: #f5f5f5; color: #800000">"</span><span style="background-color: #f5f5f5; color: #000000"> import</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #800000">"</span><span style="background-color: #f5f5f5; color: #800000">java.util.*</span><span style="background-color: #f5f5f5; color: #800000">"</span><span style="background-color: #f5f5f5; color: #000000"> pageEncoding</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #800000">"</span><span style="background-color: #f5f5f5; color: #800000">utf-8</span><span style="background-color: #f5f5f5; color: #800000">"</span><span style="background-color: #ffff00; color: #000000">%><br></span>

2. 요청 및 응답의 백엔드 설정

  2-1. 백그라운드에서 요청에 대한 인코딩이 설정되지 않은 경우 수신된 요청 내용이 깨집니다. 두 가지 상황을 고려해야 합니다:

2-1-1. Get 요청인 경우 먼저 URL 요청에서 매개변수를 얻습니다. 예:

String method = request.getParameter("method");
   그런 다음 String 개체를 호출하여 매개변수 인코딩 변환을 완료합니다. ,

String parseMethod = new String(method.getBytes("ISO-8859-1"),"UTF-8");
   여기에는 String을 구성하는 방법이 두 가지가 있습니다. 매개변수: 첫 번째 매개변수는 문자열 형태의 매개변수를 문자 배열로 변환하고, 두 번째 매개변수는 변환된 문자열의 인코딩 방법입니다.

  2-1-2. Post 요청인 경우 요청 매개변수를 가져오기 전에 직접 인코딩을 설정하는 코드를 추가합니다. 즉, 요청 개체의 setCharacterEncoding 메서드를 호출하여 인코딩을 설정합니다.

request.setCharacterEncoding("UTF-8");

 2.2. 백엔드가 비즈니스 로직 및 지속성 작업을 완료한 후 응답 스트림 데이터를 프런트엔드로 출력해야 할 수 있습니다. 출력 내용에 중국어가 포함되어 있으면 응답 개체의 인코딩을 설정해야 합니다. 응답 개체의 setContentType 메서드를 직접 호출할 수 있습니다:

response.setContentType("text/html;charset=utf-8");

3. 서버 구성 파일 설정

현재 두 단계가 여전히 작동하지 않으면 설치 디렉터리의 conf 폴더에도 설정해야 합니다. 예를 들어 내 서버는 E:tomcat7.0conf 입니다. 서버 구성 파일 server.xml을 찾아 설정합니다.

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>

위 내용은 JavaEE 개발 시 잘못된 문자 인코딩 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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