2012-03-12 6 views
1

私はあなたの音楽ライブラリを書き出すときにiTunesでこれが特に異なっていることに気付きました。Mac対PCのテキストエンコーディング

私はé(すなわち、小さなアクセント付きの小さなラテンE)を持っていて、Windowsでライブラリを書き出すと%C3%A9でエンコードされますが、Macからライブラリを書き出すと、通常の「e」が印刷され、%CC%81が続きます。

例:

Song Name: Héllo World 
Windows Export: H%C3%A9llo World 
Mac Export: He%CC%81llo World 

これは、Windows版では、私はエンコードをデコードし、私が作っているプログラムのために私には重要ですが、ファイルから来る場合、今では動作しません。マック。

なぜこの違いがありますか?違いがわかり、Macエンコーディングの内容を確認できる場所はありますか?これらの文字列をデコードするObject-Cルーチンがありますか?

ありがとうございました。

答えて

6

C3A9は、文字éのUTF-8エンコーディングです。
CC81は、COMBINING ACUTE ACCENT文字(U + 0301)のUTF-8エンコーディングです。

「e」に続いて「ACBEING ACUTE ACCENT」が文字「é」と組み合わされます。
2つは単にUnicode normalizationの異なる形式です。

iTunesが1つを他のものよりも優先させる理由はわかりませんが、そのような固有の理由はありません。

+3

私はiTunesが好きだとは思わない。根底にあるOSは両者を同じように理解することは間違いありませんが、出力のためにどちらか一方を選ぶ必要があるときは、マイクロソフトは一方的な方法と他方の方法を採用しました。 – Tommy

+1

はい、それはおそらくそれです。 iTunesが基礎となるAPIをどれだけ使用しているか、またはUnicodeの標準化を標準化することがどれほど重視されているかはわかりません。 – deceze

+3

Windowsについてはわかりませんが、Macファイルシステム(HFS +)は、分解された形式(「e」+アクセントの組み合わせ)を主張していますので、iTunesが何をしているのかは関係ありません(ファイルシステムコードを何とか迂回しない限り)。 ..) –

関連する問題