SpringMVC 는 주석@ResponseBody 를 사용 하여 json 중국어 난 장 판 을 되 돌려 줍 니 다.

더 읽 기
  ---------------------------------------
   여기 서 나 는 SpringMVC 가 좋 은 프레임 워 크 라 는 것 을 지지 할 수 없다.springmvc 가 이렇게 오래 걸 렸 다. 나 는 잘못 을 저 질 렀 는데,말하자면 부끄럽다.
항목 에서 인 코딩 형식 은 UTF-8 입 니 다.   Ajax 요청 사용 중 SpringMVC 에서 JSon 데 이 터 를 되 돌려 줍 니 다.@Response Body 주 해 를 사 용 했 습 니 다. 이 방법의 반환 결 과 를 HTTP response body 에 직접 기록 합 니 다. 
 
  그리고 데이터베이스 에서 꺼 낸 중국 어 는 Spring 의 response 를 통 해 결과 중국어 코드 를 되 돌려 줍 니 다.
 
방법 1
원인:
응답 생 성 된 response 에서'Content-Type'의 값 이 올 바 르 지 않 습 니 다.(기본 값 은 ISO-8859-1)
그리고 Spring 을 사용 하여 AnnotationMethodHandlerAdapter 를 사용 하여@ResponseBody 를 처리 합 니 다.이 종 류 는 HttpMessageConverter 를 사용 하여 정 보 를 구체 적 으로 처리 합 니 다. 


	
	
			   
            
                
                
                      
                          text/html;charset=UTF-8   
                        
                   
                
            
     
	
	
	
	
		
		
		
	
	

  
이상 은 제 가 바로 잡 은 정확 한 코드 입 니 다.  모 두 를 오도 하지 않도록 하 다. 나 는 정확 한 코드 를 붙 였 다.
 
 
아래 부분 은 잘못된 코드 입 니 다.
 
 



	
	
	
		
		
		
	
	
			   
            
                
                
                      
                          text/html;charset=UTF-8   
                        
                   
                
            
     
	

 
 
어떤 차이 가 있 는 지 보 세 요.  
나 는 한참 을 찾 았 지만 원인 을 찾 지 못 했다. 순서 가 안 맞 더 라 고요.
프로그램 이 실 행 될 때 먼저 스 캔 패 키 지 를 주석 합 니 다. 발견 하지 못 하 다 org.springframework.http.converter.StringHttpMessageConverter
 
마지막 으로 org.springframework.http.converter.stringHttpMessageConverter 를 실 행 했 을 때 스 캔 하지 않 습 니 다.
그래서 결국 순서 가 틀 렸 어 요.
 
 
 
 
----------------------------------------------------------------------------
 
 
추가 적 인 사례 가 있 습 니 다.  방법 이 없다 다음 코드 사용
 
방법 2
자바 의 url Encoding 을 사용 하여 문 자 를 인 코딩 합 니 다. 그리고 클 라 이언 트 js 에 가서 url Decoding 을 디 코딩 합 니 다. 난 장 판 문제 도 해결 할 수 있 습 니 다. 하지만 나 는 이런 방법 을 사용 하 는 것 을 건의 하지 않 는 다. 지엽 적 인 문 제 를 해결 하고 근본 적 인 문 제 를 해결 하지 않다.
 
 
서버 쪽  자바 코드 는 다음 과 같 습 니 다:

	// URL  
	protected String urlEncode(String src) {
		try {
			return URLEncoder.encode(src, "UTF-8");
		} catch (Exception ex) {
			return src;
		}
	}
 
 
 
클 라 이언 트 js 의 코드 는 다음 과 같 습 니 다.
 

	if (!misc) {
		var misc = {};
	}
	if (!misc.utils) {
		misc.utils = {};
	}
	misc.utils.urlencode2Utf8 = function(ptr) {
		for ( var x in ptr) {
			if (typeof (ptr[x]) == 'object') {
				misc.utils.urlencode2Utf8(ptr[x]);
			} else if (typeof (ptr[x]) == 'string') {
				try {
					ptr[x] = decodeURIComponent(ptr[x]);
				} catch (e) {

				}
			}
		}
	};
 

 


 




좋은 웹페이지 즐겨찾기