2011-02-09 27 views
4

NSWindowsCP1251StringEncodingからUTF-8への変換はどうすればできますか? 私はいくつかの試みをしましたが、誰もそれほどうまくいきませんでした。私の最後の試行は:iPhone - WindowsCP1251からUTF8へのNSStringエンコードの変換

NSData *dt = [mystr dataUsingEncoding:NSUTF8StringEncoding]; 
NSString *str = [NSString alloc] initWithData:dt encoding:NSWindowsCP1251StringEncoding]; 

strの結果は読めませんでした。誰も似たようなことに遭遇しましたか

+1

あなたが最初の場所でCP1251文字列を取得するにはどうすればよいですか? –

+0

コード例では、最初に 'mystr'をUTF-8に変換してから新しい文字列を作成しますが、' NSString'にはCP1251ということを伝えます。 CP1251であるはずですか? –

+0

@Bavarious:文字列はソケット接続に由来します。 – Bill

答えて

7

私はあなたがとても接近していたと思う:

// Convert it back to CP1251 
NSData *dt = [mystr dataUsingEncoding:NSWindowsCP1251StringEncoding]; 

// Now load it as UTF8 
NSString *str = [NSString alloc] initWithData:dt encoding:NSUTF8StringEncoding]; 
+0

最後のものは間違っています:エンコーディングはデータのエンコーディングでなければならないので、NSWindowsCP1251StringEncodingです。 NSString自体にエンコーディング(実際には)がないことを追加する必要があります。 – gnasher729

関連する問題