文字エンコーディング検出

バイトパターンを分析してテキストやファイルの文字エンコーディングを検出します。UTF-8、ASCII、ISO-8859-1、Shift_JISなどに対応。

このツールについて

文字エンコーディング検出ツールは、テキストやファイルのバイトパターンを分析して、使用されている文字エンコーディングを特定します。UTF-8ASCIIISO-8859-1(Latin-1)、Windows-1252(CP-1252)、Shift_JISEUC-JPGB2312 など幅広いエンコーディングの検出をサポートし、UTF-16およびUTF-32バリアントのBOMベースの検出にも対応しています。

文字エンコーディングは、バイトがどのように文字にマッピングされるかを決定します。ファイルを誤ったエンコーディングで開くと、文字化けとして知られるガーブルテキストが表示されます。これは、異なるオペレーティングシステム間でファイルを転送したり、レガシーデータベースを読み取ったり、国際的なソースからのテキストを処理したりする際に発生する一般的な問題です。正しいエンコーディングを特定することが、これらの問題を修正する第一歩です。

検出器はバイトレベルのパターンを検査して動作します。最初に**BOM(バイトオーダーマーク)**をチェックします。BOMはファイルの先頭にある特別なバイトシーケンスで、エンコーディングを一義的に識別します。BOMが見つからない場合、ヒューリスティック分析を使用します:バイトシーケンスがUTF-8のマルチバイトルールに準拠しているかを検証し、ISO-8859-1やWindows-1252に特徴的なバイト範囲をチェックし、日本語(Shift_JIS、EUC-JP)や中国語(GB2312)のエンコーディングで使用されるリードバイト/トレイルバイトのペアが有効かをテストします。

各候補エンコーディングには、バイトデータが予想パターンとどの程度一致するかに基づいて信頼度パーセンテージが割り当てられます。結果は信頼度順にソートされるため、最も可能性の高いエンコーディングを簡単に特定できます。ツールはまた、手動検査用に先頭バイトの16進ダンプも提供します。

すべての処理はブラウザ内で完全に実行されます。テキストやファイルがサーバーにアップロードされることはありません。ファイルはFile APIを使用してArrayBufferとして読み込まれ、JavaScriptでバイトごとに分析されます。

使い方

  1. テキストを直接貼り付ける場合はテキストモード、ファイルを分析する場合はファイルモードを選択します。
  2. テキストモードでは、テキストエリアにコンテンツを貼り付けます。入力や貼り付けに応じてエンコーディング分析が自動的に実行されます。
  3. ファイルモードでは、ドロップゾーンにファイルをドラッグ&ドロップするか、「参照」をクリックしてコンピュータからファイルを選択します。
  4. 検出された各エンコーディングの信頼度スコアと説明を示す結果テーブルを確認します。
  5. 下にスクロールして16進ダンプを表示し、データの先頭バイトの生のバイト値を確認します。
  6. コピーをクリック(または Ctrl+Shift+C を押す)して、検出結果をクリップボードにコピーします。

よくある質問

データは安全ですか?

はい。すべてのエンコーディング検出はJavaScriptを使用してブラウザ内で完全に実行されます。データがサーバーに送信されることはありません。テキストとファイルは端末に留まります。

貼り付けたテキストが常にUTF-8と表示されるのはなぜですか?

ブラウザのテキストエリアにテキストを貼り付けると、ブラウザが内部の文字列表現(UTF-16)に変換します。ツールがこの文字列を分析用のバイトにエンコードする際、常にUTF-8を生成するTextEncoder APIを使用します。ファイルの元のエンコーディングを検出するには、ファイルモードを使用してください。

BOM(バイトオーダーマーク)とは何ですか?

BOMはファイルの先頭に配置される特殊なUnicode文字(U+FEFF)で、エンコーディングとバイト順序を示します。例えば、UTF-8のBOMは3バイトのシーケンス EF BB BF であり、UTF-16 LEのBOMは FF FE です。BOMが存在する場合、エンコーディングの検出は100%確実です。

検出の精度はどの程度ですか?

検出精度はデータに依存します。BOM付きのファイルは100%の信頼度で検出されます。マルチバイト文字(アクセント付き文字、CJKなど)を含むUTF-8テキストは非常に高い精度です。短いASCIIのみの文字列はASCIIが多くのエンコーディングの有効なサブセットであるため曖昧になります。信頼度パーセンテージはヒューリスティック一致の強さを反映しています。

ISO-8859-1とWindows-1252の違いは何ですか?

ISO-8859-1(Latin-1)とWindows-1252はともに西ヨーロッパ言語向けの1バイトエンコーディングです。バイト値0xA0-0xFFは同一ですが、0x80-0x9Fの範囲が異なります。ISO-8859-1はこれを制御文字にマッピングしますが、Windows-1252はカーリークォート、emダッシュ、ユーロ記号などの印刷可能文字にマッピングします。実際には、ISO-8859-1とラベル付けされた多くのファイルは実際にはWindows-1252です。

大きなファイルを分析できますか?

はい。ファイルはArrayBufferとしてメモリに読み込まれ、JavaScriptで分析されます。数百メガバイトまでのファイルは問題なく動作します。非常に大きなファイルはブラウザの利用可能メモリによって制限される場合があります。16進ダンプはファイルサイズに関係なく最初の160バイトのみを表示します。

関連ツール