2013-06-22 4 views
0

DB에 저장하고 텍스트보기 또는 텍스트 편집으로 표시하려는 JSON 응답이 있습니다. 이 json 응답은 UTF-8 형식으로 인코딩됩니다.UTF8로 인코딩 된 문자열 변환 및 표시

응답 â¬, Â의 £가,  ¥는 통화 기호 어디에 뭔가를해야만

"currencies": [[0,"RUR"," ",1,0],[1,"EUR","â¬",1.44,100],[2,"GBP","£",1.6,100],[3,"JPY","Â¥",0.0125,100],[4,"AUD","$",1.1,100]]} 

같다. 나는 이것을 해독하고 표시해야한다. 이 기호는 유니 코드 기호입니다 (UTF8로 전송 됨). 인코딩 된 심볼을 어떻게 변환합니까? Plz 도움. 당신은 다음과 같이 그 인코딩, 원래의 텍스트를 가지고있는 것처럼이야 ...

byte[] b = stringSymbol.getBytes("UTF-8"); // â¬,£,Â¥ 
final String str = new String(b); 

답변

4

이 아닌 통화 기호와 텍스트을 보여주는 것 :

나는이 시도하지만 작품을 일부러 UTF-8이면 을 ISO-8859-1로 디코딩합니다.

그냥 텍스트 일 ​​뿐이므로 나중에 아무 것도 할 필요가 없으므로 절대로 깨진 형식으로 보지 않아야합니다. 텍스트를 다시 바이트로 변환 한 다음 다시 문자열로 변환해야한다면, 기본적으로 이미 손실되었음을 의미합니다.

JSON을 반환하는 HTTP 응답의 헤더를 확인하십시오. 데이터가 UTF-8이 아니라 ISO-8859-1이라고 주장하는 것으로 판단됩니다. 실제 인코딩은 헤더에 지정된 인코딩과 일치해야합니다. 그렇지 않으면 이러한 종류의 효과가 발생합니다.

또 다른 가능성은 JSON을 반환하는 모든 것이 정확히 에 대한 정보를 제공하고 데이터가 업스트림에서 깨졌습니다. 처음 깨진 부분을 볼 수있을 때까지 단계별로 데이터를 따라야합니다 (체인의 모든 링크를 소유하고 있다고 가정).

관련 문제