0

テキストファイルがありますが、ファイル内のテキストがUTF8標準またはMacOSRomanであることを確認するにはどうすればよいですか。

4

2 に答える 2

1

UTF-8ファイルは、認識しやすいバイト順マーク(BOM)で始めることができます。

そうでない場合は、確実に知ることはできませんが、基本的には、知識に基づいた推測を行うためのコードを作成する必要があります。

推測する方法はいくつかあります。

  • 不正なUTF8シーケンスがないかファイルをスキャンします。存在する場合、ファイルはMacRomanである必要があります。
  • 読んでいるファイルの「通常の」文字をスキャンします。ASCII128以上の場合は、UTF-8とMacRomanでエンコードが異なります。

すべての文字<=ascii127は、2つのエンコーディング間で同一である必要があります。したがって、ファイルにすべてが含まれている場合、エンコーディングは重要ではなく、同じテキストになります。

于 2012-10-04T21:01:24.943 に答える
1

単一のファイルの場合、実際の方法は、たとえばWebブラウザーでファイルを開き、ブラウザーの[表示]メニューを使用して、2つのエンコードでどのように表示されるかをテストすることです。エンコーディングが重要な場合(つまり、ASCIIの範囲0〜127以外の文字がある場合)、通常はすぐに違いがわかります(少なくともドキュメントの言語が読める場合)。

プログラミングでは、このような質問を自動的に解決するための一般的なツールを設定する必要がある場合は、2つのエンコーディングでファイルを(お気に入りのプログラミング言語とツールを使用して)読み取って、成功を確認するのがおそらく最善です。両方の方法で成功する場合は、ASCIIとしても読み取れるかどうかを確認してください。可能であれば、答えは簡単です(ファイルはUTF-8とMacRomanの両方でエンコードされています)。そうでない場合は、追加のロジックが必要です。データはエンコーディングレベルで双方向に解釈でき、コンテンツのみがどちらの解釈が正しいかを解決するため、原則として、コンテンツの検査が必要です。

于 2012-10-04T21:17:24.637 に答える