2012-01-09 8 views
0

私のGoogleのスキルはゴミですが、にNSDataをHTMLに変換する方法が見つからないようです。ダウンロードしたHTML(iPhone)からNSDataに使用するエンコードは何ですか?

私はNSUTF8StringEncodingを使用していますが、それは単にnullを返します。NSASCIIStringEncodingを使用すると、文字列が返されますが、いくつかの要素は逆さまの疑問符に置き換えられます。私はちょうどそれらを解析するだろうが、私はできないので、いくつかの異なる文字に起こります。これを変更する方法はありますか?

EDIT:特に、問題を引き起こすアポストロフィとダッシュです。

+1

すべては実際のHTML文字列がどのエンコーディングで始まるかによって異なります。 HTTPレスポンスヘッダはエンコーディングを指定するか、HTMLヘッダ(ASCIIとして読まれる)はそれを指定することもできます。これはASCIIではなく、UTF8ではないようです。動的に調整する必要があるように見えます。 –

+0

応答ヘッダーには、使用する 'charset'を含む' Content-Type'値が必要です。 –

+0

ダウンロードされたページに文字セットが混在するデータが含まれている場合は、 'initWithData:encoding:'で実行する前に、何らかの処理をしてクリーンアップする必要があります。 'Content-Type'ヘッダーは、すべてのデータがサーバーから返されるため、完全に信頼できるものではありません。 – Kekoa

答えて

0

明らかに、非ASCII文字が含まれているため、疑問符は逆さまになります。データをUTF8にエンコードできない場合、HTMLに制御文字が含まれている可能性があります。あなたのデータの良い16進数ダンプを取って、あなたが得ているものを見てください。

:私は、その後の進フィールドにそれをコピーして貼り付け、コンソールに

PO myNSData

を行うことができますし、それは、進でデータをこぼれます(しかし、明確な、それは最初の)だと思いますTRANSLATOR, BINARY

あなたが本当に得ているものを見る。

+0

po myNsDataは結果を吐き出さなかったようです(メモ、私はnsmutableデータ変数を使用しました) –

関連する問題