2016-06-06 2 views
0

Actucally Tomcat에서 발생하는 문제인지 확신 할 수 없습니다. 일부 중국어 단어 (UTF-8로 인코딩)를 처리해야했습니다. "Run on server"로 이클립스에서 프로그램을 디버깅 할 때 예상 결과.하지만 전쟁 패키지로 내보내고 바람둥이에서 뛰면 모든 중국어 단어가 GBK로 표시되어 읽을 수 없습니다. 문제가 어디 있는지 모르겠습니다. 누군가 해결 방법을 알려주시겠습니까?Tomcat의 인코딩 유형을 설정하는 방법은 무엇입니까?

+0

Tomcat을 문자 인코딩으로 설정하는 것만 큼 간단하지 않습니다. 웹 응용 프로그램은 적절한 문자 인코딩을 사용하여 텍스트를 읽고 쓰는 방식으로 작성되어야합니다. 당신은 분명히 webapp의 어딘가에 명시 적으로 지정하는 대신 기본 char 인코딩을 사용합니다. 기본 char 인코딩은 다른 OS (예 : Windows의 경우 Cp1252, Linux의 경우 UTF-8)마다 다르므로 webapp가 다른 플랫폼에서 다르게 작동 할 수 있습니다. – Jesper

답변

1

당신은 당신의 기본 인코딩 문자로 UTF-8을 만들기 위해 몇 가지 변경 사항을 수행해야합니다

  • 설정 URIEncoding = "UTF-8"server.xml의 당신의 커넥터에.
  • 기본 인코딩을 UTF-8로 설정 한 문자 인코딩 필터 사용
  • 모든 JSP를 변경하여 해당 contentType에 charset 이름을 포함시킵니다. 예를 들어, 일반적인 JSP 페이지에는 <%@page contentType="text/html; charset=UTF-8" %>을 사용하고 XML 구문 (JSP 문서라고도 함)에는 페이지의 경우 <jsp:directive.page contentType="text/html; charset=UTF-8" />을 사용하십시오.
  • 응답에 대한 컨텐트 유형을 설정하고 컨텐트 유형에 charset 이름을 UTF-8로 포함하도록 모든 서블릿을 변경하십시오. response.setContentType("text/html; charset=UTF-8") 또는 response.setCharacterEncoding("UTF-8")을 사용하십시오.
  • 을 변경 한 내용 세대 라이브러리는 UTF-8을 사용하기 위해 (속도, 프리 마커 등)를 사용하고는
  • 어떤 밸브 또는 5 월 필터를 사용하지 생성 응답의 내용 유형에 UTF-8 지정 문자 인코딩 필터 또는 jsp 페이지가 인코딩을 UTF-8로 설정할 기회가 있기 전에 요청 매개 변수를 읽습니다.

더 많은 정보 elkorchi로 대답 외에 this

0

를 참조하면 스프링 프레임 워크를 사용하는 경우

<filter> 
    <filter-name>charsetFilter</filter-name> 
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
    <init-param> 
     <param-name>encoding</param-name> 
     <param-value>UTF-8</param-value> 
    </init-param> 
</filter> 
<filter-mapping> 
    <filter-name>charsetFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

위의 작동, 당신은 또한, web.xml에 추가 필터를 필요 그렇지 않으면 쓸 필요 이와 같이 자신의 필터를 변경하고 그에 따라 xml 구성의 클래스를 변경하십시오.

자세한 내용은 블로그를 참조하십시오. enter link description here

관련 문제