0

POSIXを使用してクロスプラットフォームのファイルIOユーティリティを作成したいと思います。Windowsで書いたファイルを(電子メールまたはサムドライブを介して)OS Xに移動しても、まったく同じコンテンツが含まれているように見えるかどうか疑問に思っていました。また、ファイルをOSXからWindowsに移動した場合はどうでしょうか。

また、このファイルに文字列を書き込むときに注意する必要がある、どちらのプラットフォームにも奇妙なUTF-8の異常はありますか?

この質問には、PowerPC Macではなく、新しいMacに対してのみ回答してください。PowerPCですべてのエンディアンと関連するバイト順序の問題が解決したことを確認したいだけです。

4

1 に答える 1

1

書き込み用にファイルを開くときにPOSIXコードが「binary」フラグを使用し、両方のマシンのエンディアンが同じである場合(これは、最新のIntelベースのMacとIntelベースのWindows PCに当てはまります)、はい、ファイルはバイトである必要があります- for-byte同一。

UTF-8に関して、注意すべき主なことは、一般に、Windowsは合成済み文字(「正規化形式NFC」)を好み、Mac OSは合成済み文字(「正規化形式NFD」)を好むということです。つまり、Windowsは「é」をU + 00E9 LATIN SMALL LETTER E WITH ACUTEとしてエンコードし、MacOSはそれをU+ 0065 LATIN SMALLLETTEREの後にU+0301 COMBININGACUTEACCENTとしてエンコードします。明らかに、両方のOSが両方のシーケンスを同じ方法でレンダリングしますが、これはユーザーが入力した文字、またはディスク上のファイル名から読み取った文字に影響すると思います。

PowerPCで死ぬエンディアン関連の問題に関しては、それは厳密には真実ではありません。ARMは少なくともどちらのエンディアンでも動作できます。たとえば、iOSは(Intelと一致するように)リトルエンディアンを使用する傾向がありますが、他のOSはビッグエンディアンモードで実行される可能性があり、一部(Linuxなど)はどちらの方法でもコンパイルできます。ウィキペディアでは、Androidデバイスが通常使用するエンディアンについては言及されていません。

于 2013-01-08T07:14:53.040 に答える