2014-11-20 10 views
0

내 주요 문제를 언급하기 전에 약간의 배경com.fasterxml.jackson.databind.ObjectMapper 인코딩

우리는 FasterXML를 통해 JSON에 POJO로 변환하는 모듈이있다. 처음에는 POJOS로 변환 된 다음 JSON으로 변환되는 여러 XML이 있다는 논리가 있습니다.

이러한 여러 개의 JSON은 하나의 JSON에 포함되어 제 3 자에 의해 처리됩니다.

문제는 단일 JSON이 형성 될 때까지입니다. 모든 것이 정상적으로 보입니다. 모든 JSONs 병합 및 파일에 기록되면

, 지역화 된 문자는 모두 우리는 그들이 개인 JSON에서 어떻게 보이는지 같이 동일한를 원하는 반면, 인코딩

예를 들어 단일 JSON은 니펫을

{ "제목": "웹 サ ー バ に 関 す る お 知 ら せ"}

예를 들어 병합 된 JSON 코드 조각

{ "제목": "웹 \ u30b5 \ u30fc \ u30d0 \ u306b \ u95a2 \ u3059 \ u308b \ u304a \ u77e5 \ u3089 \ u305b "}

나는 우리가 지역화 된 문자

BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(finalJsonPath),"UTF-8")); 
writer.write(jsonString); 

같은 objectmapper 코드는 여기를 UTF-8 인코딩을해야 할 생각으로 617,451,515,

byte[] jsonBytes = objectMapper.writeValueAsBytes(object); 
String jsonString = new String(jsonBytes, "UTF-8"); 

이 JSON 문자열은 다음

BufferedWriter writer = new BufferedWriter(new FileWriter(finalJsonPath)); 
writer.write(jsonString); 

은 또한 다음을 시도 파일에 기록됩니다 단일 json에도 쓰는 데 사용되는 인코딩은 그 시점에 표시되지 않습니다.

아무도 지적 해주세요. 병합 된 JSON 레벨에서 인코딩 문제의 원인은 무엇입니까?

추신 : 코드는 tomcat에 배포되는 전쟁의 일부입니다. 처음에 우리는 볼 수 있었다 ??? (JSON에서 물음표) 이후 우리는이 = "$ JAVA_OPTS -Dfile.encoding = UTF-8"나중에

, I도 추가 서블릿 요청 인코딩

JAVA_OPTS을 catalina.sh 다음을 추가하지만은 않았다

JAVA_OPTS이 = "$ JAVA_OPTS -Dfile.encoding = UTF-8 -Djavax.servlet.request.encoding = UTF-8"

감사합니다 도움이되지!

답변

0

코드가 병합 된 JSON을 처리하는 것을 관찰했습니다. json 지역화 된 콘텐츠가 ASCII 문자로 변환되어 병합 된 json에서 native2ascii 명령을 실행 중입니다.

json에서 -reverse 옵션을 사용하여 native2ascii를 실행했는데 발견이 확인되었습니다. -reverse는 ascii 인코딩을 되돌 렸습니다.