0

「ç」や「ñ」などの Unicode 文字で NSString を使用すると問題が発生します。これと同じくらい簡単な例:

NSString *alphabet = @"abçd";
NSLog(@"alphabet is %@", alphabet);

これをコンソールに出力します。

アルファベットは省略されています

NSString がこれらの Unicode 文字を処理していることを確認するにはどうすればよいですか? オンラインで NSString クラス参照を検索していくつかの異なるアプローチを試みましたが、どれもうまくいかないようです。

前もって感謝します。

4

2 に答える 2

2

ファイルに出力し、そこから読み取ることにより、NSStringがそれらを正しく処理したことを確認できます...

問題が NSString にあるのではなく、コンソールが期待するテキスト エンコーディング、またはソース ファイルのテキスト エンコーディングに問題があることを 100% 確実に推測します。おそらく前者です。

Xcodeのデバッガーでは、期待される出力が得られます:

alphabet is abçd

あなたのテスト:

NSString *alphabet = @"abçd";       
[alphabet writeToFile:[@"~/Desktop/charTest.txt" stringByExpandingTildeInPath] atomically:NO encoding:NSUTF8StringEncoding error:nil];
于 2012-04-09T01:42:27.113 に答える
0

UTF-8 エンコーディングで NSString の初期化を試みることができます

NSString* newStr = [[NSString alloc] initWithData:theData encoding:NSUTF8StringEncoding];

コードは別の回答から取得されました — UTF-8 でエンコードされた NSData を NSString に変換します

于 2012-04-09T01:48:08.333 に答える