2012-10-10 3 views
1

많은 스레드를 읽었지만 실제로는 아무도 도움이되지 않았습니다. 일부 UTF8 문자가 포함 된 JSON을 다운로드하고 구문 분석하려고합니다. 이러한 구문의 인코딩을 제외하고는 모두 잘 작동합니다. 저 좀 도와 주 시겠어요?Android : HTTP 응답 - 파일 저장하기 UTF8 인코딩

HttpGet request = new HttpGet(uri); 
HttpResponse resp = client.execute(request); 
entity = resp.getEntity(); 
fos = context.openFileOutput(fileSavePath, Context.MODE_PRIVATE); //fos is FileOutputStream 
entity.writeTo(fos); 
entity.consumeContent(); 
fos.flush(); 
fos.close(); 

하고는이 같은 파일을 엽니 다

stream = context.openFileInput(AppConfig.CATEGORIES_JSON_PATH); 
reader = new InputStreamReader(stream, StringUtils.UTF8); 

는 그 GSON 물건이 올바른지 만 열고 파일 물질을 저장 믿습니다. 나는 또한 실수가 entity.writeTo (fos)에 있다고 믿는다. 왜냐하면 인코딩이 지정되지 않았기 때문이다. 그래서 나는 writingwith 바이트 버퍼와의 OutputStreamWriter를 시도했지만 다음 GSON MalformedJsonException 던졌다 : 어떤 도움은 매우 문제가 저절로 해결

+0

[이 질문에 대한 대답 (http://stackoverflow.com/questions/1001540/how-to-write-a-utf-8-file-with-java)이 도움이 될 수 있습니다. 'openFileOutput()'은 인코딩을 지정할 수 없지만 생성자가 인코딩을하는'OutputStreamWriter'에서 결과로 나오는'FileOutputSteam'을 래핑 할 수 있습니다. – acj

+0

나는 내 게시물의 끝에 내가 이미 그것을 시도했다고 썼다. 성공하지 못했습니다 –

+0

당신의 게시물은 바이트 버퍼와'OutputStreamWriter'를 사용하여 언급했습니다. 이것은 제가 제안한 것과 약간 다릅니다. '새로운 OutputStreamWriter (fos, "UTF-8")'을 쓰고 대신 그 객체에 쓰려고 했습니까? – acj

답변

0

을 감사 Untermineted 문자열 ...

합니다. 비록 sqlite 데이터베이스를 찾는 동안 문자가 올바르지 않았다는 evrything 애플 리케이션에서 잘 보인다.