2012-02-19 2 views
1

私のアプリケーションでは、サーバからいくつかの文字列値を取得していますが、正しい文字列で終わるわけではありません。サーバからの既知のUTF-8文字列の不正なデコード

بسيطこれは、サーバー側からの文字列ですが、私は取得していますが、私はオンラインのデコーダに応答文字列をテストしようとしたبسÙØ·

です:

http://www.cafewebmaster.com/online_tools/utf8_encode

これは、UTF-8であります私はiPhone側で文字列をデコードできませんでした。

私が参照

Converting escaped UTF8 characters back to their original form
unicode escapes in objective-c
utf8_decode for objective-c

としてこれらのスタックオーバーフローのリンクを見ていたが、それらのどれも助けません。 UTF-8に変換(不当に)決定的な何かを言うのは難しいですが、いくつかの点であなたはISO-8859-1としてUTF-8エンコードされた文字列を解釈して、任意のソースなし

答えて

0

は、このリンクから

Different kind of UTF8 decoding in NSString

のNSString *文字列= @ "بسÙØ・" を問題を解決しました。

私は

サンキュー

[NSString stringWithUTF8String:(char*)[string cStringUsingEncoding:NSISOLatin1StringEncoding]] 

にこの方法を試してみました。

+1

これはあなたが実際に何かを解決したようには聞こえません。私はあなたがこのような "解決策"を支払わないことを願っています。 – mvds

+0

@mvds私は上記の方法で私の問題を解決することができます参照してください、私は他の人に役立つかもしれない同じソリューションを見つける他の人を助けるためにここに投稿しました – Raj

+0

@mvdsこれで間違って、utf8エンコードされた文字列は、私はあなたの答えに役立つものを見つけました!!!!!!!申し訳ありません。 – Raj

0

解析文字列のための「بسيط」:

  • 生長さ:8
  • 論理的長さ:4
  • 生のバイト:0xD8 0xA8 0xD8 0xB3 0xD9 0x8A 0xD8 0xB7
  • は、ISO-8859-1(بسÙØ・)として解釈:0xC3 0x98 0xC2 0xA8 0xC3 0x98 0xC2 0xB3 0xC3 0x99 0xC2 0x8A 0xC3 0x98 0xC2 0xB7

だから、いくつかの点であなたはおそらくあなたのコード内でISO-8859-1にはいくつかの参照を見つける必要があります。見つけてそれを削除します。

1

私はあなたの質問から、以下の点を理解していない:

  1. あなたは、サーバー側(私はそれのプログラミングを意味する)でのアクセスを持っていますか?
  2. どのようにサーバーにデータを送受信しますか?

最初の質問では、サーバーがUTF-8エンコーディングでテキストを送信するようにプログラムされていると仮定します。iPhone上の今

あなたはソケットを使用してサーバに送信された場合には、以下を使用します。

機能 writeToServerがサーバにデータを送信しますあなたの関数である
NSString *messageToSend = @"The text in the language you like"; 
const uint8_t *str = (uint8_t *) [messageToSend cStringUsingEncoding:NSUTF8StringEncoding]; 
[self writeToServer:str]; 

あなたはSQLite3のデータベースを使用してデータを入れて喜んでいる場合:

sqlite3_bind_text(statement, 2, [@"The text in the language you like" UTF8String], -1, NULL); 

あなたが(ソケットを使用して再度)サーバからデータを受信して​​いる場合は、次のようにします。

[rowData appendBytes:(const void *)buf length:len]; 
NSString *strRowData = [[NSString alloc] initWithData:rowData encoding:NSUTF8StringEncoding]; 

私はこれがあなたが必要とするすべての場合をカバーすることを望む。

関連する問題