2012-03-14 10 views
0

問題は、ASIHTTPRequestを使用してXMLファイルをダウンロードしているとき、ヘッダーの "エンコーディング"属性のエンコーディングを使用する代わりにデフォルトの応答エンコーディングを使用するという問題です。ASIHTTPRequestは常にXMLファイルに記載されているエンコーディングのdefaultresponseEncoding instedを使用します

クラスは、ヘッダー情報を使用して、ResponseEncodingを "Charset"の特定のエンコーディングに設定します。そのため、クラスはHTMLページの場合にうまく機能します。ヘッダー自体にエンコーディングタイプが含まれているためです。

デフォルトのエンコーディングはNSISOLatin1StringEncodingですが、属性のエンコーディングは "función"の代わりに "función"のような応答文字列を表示するUTF-8です。

ASIHTTPRequestがあなたのXMLファイルを解析しません

答えて

1

だから私は、要求(ASIHTTPRequest)のresponseEncodingプロパティは、XMLファイルにエンコードタイプを設定することにしたい、それは単にHTTPヘッダの内容に基づいてエンコーディングを決定。

代わりにrawデータを取得して文字列に変換するには、request.responseDataを使用します。

+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

それはあなたのNSLog文の出力である場合、それが正しいとASIHTTPRequestクラスが唯一

関連する問題