springmvc 에서 ajax 를 보 내 중국어 난 장 판 해결 방법 을 모 았 습 니 다.

spingmvc 를 사용 하여 JS 에서 ajax 를 통 해 요청 을 보 내 고 json 형식의 데 이 터 를 되 돌려 줍 니 다.데이터베이스 에서 꺼 내 는 것 은 정확 한 중국어 형식 입 니 다.페이지 에 보 여 주 는 것 은 잘못된 것 입 니까?연구 해 보 니 몇 가지 해결 방법 이 있다. 
저 는 sping-web-3.2.2,jar 를 사용 합 니 다.
  방법 1:
  @RequestMapping 에 produces="text/html;charset=UTF-8"

@RequestMapping(value = "/configrole", method = RequestMethod.GET, produces = "text/html;charset=UTF-8") 
public @ResponseBody String configrole() { 
 ...... 
} 
방법 2:
StringHttpMessage Converter 에 기본적으로 문자 집합 이 설정 되 어 있 기 때문에 ISO-8859-1 입 니 다.
그래서 소스 코드 를 받 아 UTF-8 로 수정 하고 spring-web-3.2.2.jar 에 포장 합 니 다.

public class StringHttpMessageConverter extends AbstractHttpMessageConverter<String> 
{ 
 public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8"); 
 .......... 
}
방법 3:
org.springframework.http.MediaType 의 구조 적 방법 에 대한 인 자 를 수정 하고 applicationContext-mvc.xml 에 설정 을 추가 합 니 다.

public MediaType(String type, String subtype, Charset charset) { 
  super(type, subtype, charset); 
} 
Xml 코드 

<bean id="stringHttpMessageConverter" 
  class="org.springframework.http.converter.StringHttpMessageConverter"> 
  <property name="supportedMediaTypes"> 
    <list> 
      <bean class="org.springframework.http.MediaType"> 
        <constructor-arg value="text" /> 
        <constructor-arg value="plain" /> 
        <constructor-arg value="UTF-8" /> 
      </bean> 
    </list> 
  </property> 
</bean> 
방법
org.springframework.http.converter.stringHttpMessageConverter 류 는 요청 이나 해당 문자열 을 처리 하 는 클래스 이 며,기본 문자 집합 은 ISO-8859-1 이기 때문에 json 에 중국어 가 있 을 때 오류 가 발생 합 니 다.
StringHttpMessageConverter 의 부모 클래스 에는 Listsupported MediaTypes 속성 이 있 습 니 다.StringHttpMessageConverter 는 특수 처리 가 필요 한 MediaType 형식 을 지원 합 니 다.처리 해 야 할 MediaType 형식 이 supported MediaTypes 목록 에 없 으 면 기본 문자 집합 을 사용 합 니 다.
해결 방법 은 설정 파일 에 다음 코드 만 추가 하면 됩 니 다.

<mvc:annotation-driven>
<mvc:message-converters>
 <bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
 <value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
다른 MediaType 형식 을 처리 하려 면 list 탭 에 다른 value 탭 을 추가 할 수 있 습 니 다.
springmvc 에서 aax 를 보 내 는데 중국어 난 장 판 문제 가 발생 하면 여기까지 소개 해 드 리 겠 습 니 다.도움 이 되 셨 으 면 좋 겠 습 니 다!

좋은 웹페이지 즐겨찾기