2

上付き文字と下付き文字を表示する必要がある iPhone アプリに取り組んでいます。plist からデータを読み込むためにピッカーを使用していますが、ピッカービューに Unicode 値が正しく表示されません。下付き文字と上付き文字は認識されません。これは、plist が utf-8 としてエンコードされていることが原因であると想定しているため、問題は、plist 文字列エンコードを utf-8 から utf-16 に変換する方法です。

もう少し詳しく説明します。

これを行うと、少なくともテキストフィールドに正しく表示されます:

NSString *equation = @"x\u00B2 + y\u00B2 = z\u00B2"

ただし、plist で同じ文字列を定義し、それを読み込んで文字列に割り当て、ピッカービューに表示しようとすると、上付き文字ではなくエンコードが表示されるだけです。

@Matt: Unicode が \u00B2 => \u00B2 でエスケープされているという提案に感謝します。「plists のエスケープされた値」をグーグル検索しても有用な結果は返されず、キーボードの cmd-ctrl-shift-+ を使用できませんでした。さらに提案があれば大歓迎です!!

4

4 に答える 4

0

Plistファイルは自動的に独自のエンコーディングを埋め込みます。すなわち:

<?xml version="1.0" encoding="UTF-8"?>

これは、UTF-8、UTF-16、またはその他のいずれであっても、正しくロードされることを意味します。

plistからの読み込みに問題がある場合は、別のものである必要があります。使用してみてください:

NSLog(@"%@", [[[NSDictionary alloc] initWithContentsOfFile:@"/path/to/plist"] autorelease]);

問題を見つけるための開始点としてplist全体を出力します。

エンコーディングに興味がある場合は、Xcodeでテキストファイルとして開く(ファイルツリーを右クリックして[名前を付けて開く...]を選択)、[表示]->[テキスト]->[ファイルエンコーディング]メニューを使用して変更できます。ファイルエンコーディング(一致するようにXMLエンコーディングを修正する必要があります)。

于 2009-05-13T01:33:29.453 に答える
0

約 1 日実験を行った後、OS X のキャラクター パレットを使用する機会がありました。少し面倒ですが、これはうまく機能します....コードをテキストとしてplistに埋め込む方法をまだ知りたいです。

于 2009-05-13T17:04:44.747 に答える
0

のような長いユニコードでは動作しないようです

&#x2233E;

plist のヘッダー:

<?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
     3 <plist version="1.0">
于 2010-04-24T18:34:51.553 に答える