テキストファイルがありますが、ファイル内のテキストがUTF8標準またはMacOSRomanであることを確認するにはどうすればよいですか。
2 に答える
UTF-8ファイルは、認識しやすいバイト順マーク(BOM)で始めることができます。
そうでない場合は、確実に知ることはできませんが、基本的には、知識に基づいた推測を行うためのコードを作成する必要があります。
推測する方法はいくつかあります。
- 不正なUTF8シーケンスがないかファイルをスキャンします。存在する場合、ファイルはMacRomanである必要があります。
- 読んでいるファイルの「通常の」文字をスキャンします。ASCII128以上の場合は、UTF-8とMacRomanでエンコードが異なります。
すべての文字<=ascii127は、2つのエンコーディング間で同一である必要があります。したがって、ファイルにすべてが含まれている場合、エンコーディングは重要ではなく、同じテキストになります。
単一のファイルの場合、実際の方法は、たとえばWebブラウザーでファイルを開き、ブラウザーの[表示]メニューを使用して、2つのエンコードでどのように表示されるかをテストすることです。エンコーディングが重要な場合(つまり、ASCIIの範囲0〜127以外の文字がある場合)、通常はすぐに違いがわかります(少なくともドキュメントの言語が読める場合)。
プログラミングでは、このような質問を自動的に解決するための一般的なツールを設定する必要がある場合は、2つのエンコーディングでファイルを(お気に入りのプログラミング言語とツールを使用して)読み取って、成功を確認するのがおそらく最善です。両方の方法で成功する場合は、ASCIIとしても読み取れるかどうかを確認してください。可能であれば、答えは簡単です(ファイルはUTF-8とMacRomanの両方でエンコードされています)。そうでない場合は、追加のロジックが必要です。データはエンコーディングレベルで双方向に解釈でき、コンテンツのみがどちらの解釈が正しいかを解決するため、原則として、コンテンツの検査が必要です。