0

非常に奇妙な問題があります。私は約3年前にiOSアプリ(iOS-SDK 3.0)を開始し、それ以来、SDK4.0および5.0を使用しました。5.0(または5.1)以降、突然ドイツ語の特殊文字(äöüß)に問題が発生し始めました。

今では、NSStringを特別な文字で初期化することさえできません。次の行です。

NSString *str = @"abcäxyz";

次の警告が表示されます。

入力コードセットUTF-8に属していない入力バイトが原因で入力変換が停止しました

そしてこれ:

NSLog(@"%@", strTemp);

与える:

abc

つまり、最初の特殊文字で停止します。他のプロジェクトでは、すべてが正常です。特殊文字でも問題なく動作します。

構成の問題ですか?

編集:明らかに、それはファイルエンコーディングの問題です。

ファイル-ImyFile


あげてるよ:

text / x-c ++; charset=unknown-8ビット

iconvで変換しようとすると、次のようになります。

不明からの変換-8ビットはサポートされていません

4

3 に答える 3

1

UTF-8コードを使用して文字列を初期化するとどうなりますか?そのようです:

 NSString *s = [NSString stringWithFormat:@"%C", 0xc39f]; // should be ß 

私の知る限り、あなたもこれを行うことができるはずですが、それをテストしていません:

  NSString *s = [NSString stringWithUTF8String:"0xc39f"];

それらを試して、何が起こるかを見てください。特殊文字用のUTF-8コードテーブルを保持しているサイトがいくつかあります。たとえば、このサイトです。

于 2012-09-07T10:00:23.007 に答える
1

ファイルがUTF-8でエンコードされている限り、@"abcäxyz"問題はありませんが、リテラルのUnicode文字を埋め込む明示的な形式は\u????です。

- (void)testGermanChar
{
    NSString *expected = @"abc\u00E4xyz";
    NSString *actual = @"abcäxyz";
    STAssertEqualObjects(expected, actual, @"the two strings should be equivalent");
}
于 2012-09-07T10:15:17.867 に答える
0

解決済み:Xcodeでファイルのエンコードを変更しました:エンコードを変更するファイルをクリックしてから、右側のパネル(このペインの名前は何ですか?アイデアはありますか?)を開いてプロパティを編集します。「テキスト設定」の下に「テキストエンコーディング」が表示されます。以上です。

于 2012-09-08T09:47:46.290 に答える