내 응용 프로그램에는 요청에서 JSONObject를 읽고 다른 곳에서 사용되는 일부 Java 객체를 생성하는 Java 서블릿이 있습니다. ISO-8859-1로 인코딩 된 문자열이 JSON에 있기 때문에 문제가 발생합니다. Java 문자열로 추출하면 인코딩이 UTF-16으로 해석됩니다. 다른 JSON 객체에 넣으려면 올바르게 인코딩 된 문자열을 다시 가져올 수 있어야합니다.ISO-8859-1 인코딩 된 문자열을 Java JSON 외부로 가져옴
ByteBuffers 및 CharBuffers를 사용해 보았지만 전혀 문자를 얻지 못했습니다. ISO-8859-1을 사용하는 다른 응용 프로그램과 잘 작동해야하므로 인코딩을 변경할 수 없습니다.
팁을 주시면 감사하겠습니다.
Struts 1.3.8을 사용하는 레거시 애플리케이션입니다. JSONObject 및 JSONArray에 대해 net.sf.json 2.2.4를 사용하고 있습니다.
구문 분석 코드 중 일부이다
final JSONObject a = (JSONObject) i;
final JSONObject attr = a.getJSONObject("attribute");
final String category = attr.getString("category");
final String value = attr.getString("value");
그때 디스플레이를 위해 클라이언트에 전달 JSON을 생성하는 다른 액션 클래스에 의해 검색되는 정보를 사용하여 POJO를 만들거나 다른 전달 응용 프로그램.
JSON에 "Juan Guzmán"문자열이 포함되어있는 경우 Java String에 Juan Guzm? _An (필자의 경우 정확한 문자열이 없습니다)이 포함되어 있습니다. 올바른 발음 구별을 다시 얻는 방법을 모르겠습니다. 정확한 표현이 포함 된 Java String을 얻을 수 있다면 아래의 Mezzie 솔루션을 사용하면 JSON에 다시 넣을 올바른 인코딩으로 문자열을 만들 수 있습니다.
안녕하세요 Betsey, 그리고 스택 오버 플로우에 오신 것을 환영합니다. 여기서 좀 더 자세한 정보를 제공해야합니다. 독서를하는 코드를 붙여 넣을 수 있습니까? 또는 적어도이 작업을 위해 사용중인 프레임 워크/라이브러리를 명시하십시오. –
@ AleksanderBlomskøld, 위의 약간의 세부 정보를 추가했습니다. 도움이 되었기를 바랍니다. 빠른 응답에 감사드립니다! – betseyb