2011-05-03 4 views
2

나는 간단한 뉴저지 REST 웹 서비스가이 :저지 REST WS - 요청 본문의 UTF-8

@POST 
@Path("/label") 
@Consumes(MediaType.TEXT_HTML)  
public Response setLabels(String requestBody) { 
    System.out.println(requestBody); 
...... 
} 

요청 "특별한"영어 이외의 문자

[{"За обекта"}] 

내가 방화범에서 볼 수있는 몇 가지 텍스트를 전달 해당 요청이 올바른 UTF-8 콘텐츠 및 문자 세트로 전달되었습니다.

Content-Type text/plain; charset=UTF-8 

서버 출력에서 ​​on은 바람직한 c를 나타내지 않지만 harset :

[{"?? ??????"}] 

어떤 아이디어가 잘못 되었습니까? 어떻게 서버 측에서 올바른 charset으로 텍스트를 캡쳐 할 수 있습니까?

+0

여기에 속합니다. –

답변

1

System.outPrintStream입니다. 일반적으로 UTF-8이 아닌 플랫폼 기본 인코딩을 사용합니다. 올바른 데이터를 얻으려고하면 콘솔에 인쇄 할 때 엉망이됩니다.

나는 몇 주 전에 똑같은 문제를 겪었다. 더 악화 된 이유는 실제로 코드의 다른 부분에 인코딩 관련 버그가 있다는 것입니다.

+0

실제로 값은 REST를 통해 올바르게 전달되므로 표현의 문제 일뿐입니다. – user645055

관련 문제