2012-03-14 3 views
0

문제는 ASIHTTPRequest를 사용하여 XML 파일을 다운로드하는 동안 헤더의 "인코딩"속성에서 인코딩을 사용하는 대신 기본 응답 인코딩을 사용한다는 것입니다.ASIHTTPRequest는 항상 XML 파일에 언급 된 인코딩의 defaultresponseEncoding insted를 사용합니다.

클래스는 헤더 정보를 사용하여 responseEncoding을 "Charset"의 특정 인코딩으로 설정합니다. 따라서 HTML 페이지의 경우 헤더 자체에 인코딩 유형이 포함되므로 클래스가 잘 작동합니다.

기본 인코딩은 NSISOLatin1StringEncoding이지만 속성의 인코딩은 "función"대신 "función"과 같은 응답 문자열을 렌더링하는 UTF-8입니다. 요청 (ASIHTTPRequest)의

그래서 responseEncoding하려는 속성이

답변

1

ASIHTTPRequest는 XML 파일을 구문 분석하지 않습니다 XML 파일의 인코딩 유형으로 설정하기 위해서는 HTTP 헤더의 내용만을 기준으로 인코딩을 결정한다 .

request.responseData를 사용하여 원시 데이터를 가져 와서 직접 문자열로 변환하십시오. 그 다음 NSLog 문 출력을하는 경우

+0

네, 원시 데이터로부터 응답 문자열을 얻을 u는 말했다로 인코딩하지만 NSXMLParser 난에 데이터를 통과하면서 약간의 불일치가 있습니다. 대신 "información"나는 대리자를 통해 informaci \ u00f3n있어 –

+0

@VigneshKumar 이것이 NSLog 출력 경우 올바른 것 같습니다. \ u00f3는이 문자를 의미합니다 : http://www.fileformat.info/info/unicode/char/f3/index.htm - 또는 6 문자를 실제로 얻는다면 \, u, 0, 0, f 및 3 그럼 당신은 어딘가에 코드에 버그가 있습니다 :) – JosephH

+0

당신의 도움을 주셔서 감사합니다 joseph –

2

이 올 바르고 ASIHTTPRequest 클래스는 작동하고 올바른 만

관련 문제