0

ヘブライ語 (LTR) 文字列を NSMutableArrey に挿入すると、文字列が何らかの形で歪んでしまいます。
私は何をしますか?

        NSString *peace = @"שלום";
        NSLog(@"peace - %@", peace);

        NSMutableArray *peaceArrey = [[NSMutableArray alloc]initWithCapacity:1];
        [peaceArrey addObject:peace];
        NSLog(@"peaceArrey - %@",peaceArrey);

そして、ここにログがあります:

        peace - שלום
        peaceArrey - (
            "\U05e9\U05dc\U05d5\U05dd"
        )
4

3 に答える 3

2

すべて問題ないはずです、試してみてくださいNSLog(@"%@", peaceArrey[0]);

表示されている結果は、NSArray が出力される方法と同じです。Unicode 文字はそのコードとして表されます。

于 2013-07-05T08:32:17.610 に答える
1

文字列をログに記録するために、引数で%@書式指定子NSLog呼び出しを使用する場合。description

プレーンな文字列の場合、このメソッドは単に文字列を返します:

NSLog(@"string: %@", @"שלום");
// prints שלום

一方、文字列を配列に入れると、NSArraydescriptionメソッドが呼び出され、次に が呼び出されますdescriptionWithLocale:indent:

このメソッドは、プロパティ リストの書式設定された文字列を作成するだけです。NSPropertyListOpenStepFormatASCII エンコードされた を使用します。そのため、ヘブライ語の Unicode 文字をエスケープする必要があります。

于 2013-07-05T08:34:29.863 に答える
1

オブジェクトの実際の値としてログに記録される表現を間違えないでください。NSArrayの説明は、古いスタイルのプロパティ リスト形式です。とりわけ、これは文字列内の非 ASCII 値がエスケープ シーケンスとして表されることを意味します。Unicode 文字は、エスケープ シーケンスとして表現される一連の UTF-16 コード単位として表示されます。

于 2013-07-05T08:28:28.457 に答える