🔤

テキストエンコーディング検出器

ブラウザだけで動くエンコーディング検出ツール。サンプル読み込み、変換ヒント、16言語ローカライズ付き。

テキスト入力

文字エンコーディングとは

文字エンコーディングは、コンピュータストレージと送信のために文字をバイナリ値にマップするシステムです。異なるエンコーディングは異なるマッピングを使用します:ASCII は 7 ビット(128 文字、英語のみ)、ISO-8859-1 (Latin-1) は 8 ビットに拡張(256 文字、西ヨーロッパ)、簡体字中国語用 GB2312/GBK、繁体字中国語用 Big5、日本語用 Shift-JIS、UTF-8(1-4 バイト、ユニバーサル、ASCII と下位互換)、UTF-16(2 または 4 バイト)。文字化け(� のような)は、あるエンコーディングでエンコードされたテキストが別のエンコーディングでデコードされると発生します。BOM(バイトオーダーマーク)はファイルの先頭にあるオプションの署名で、エンコーディングを識別します。適切なエンコーディング検出はデータ破損を防ぎ、システムと言語間で正しいテキスト表示を保証します。

機能

🔍

スマート検出

統計分析、BOM 検出、文字パターン認識を使用してテキストエンコーディングを自動検出。UTF-8/16/32、GBK、GB2312、Big5、Shift-JIS、ISO-8859 シリーズ、Windows-1252 をサポート、信頼度スコア付き
🔄

文字セット変換

サポートされている任意のエンコーディング間でテキストを変換:UTF-8 ↔ GBK ↔ Big5、文字化け問題の修正、BOM マーカーの追加または削除、サロゲートペアと結合文字を正しく処理
🩺

エンコーディング診断

エンコーディング問題を識別:無効なバイトシーケンス、同じファイル内の混合エンコーディング、BOM の不一致、サロゲートペアエラー、修正提案と詳細なエラーレポート付き
📦

バッチ処理

エンコーディング検出で複数のファイルを同時に処理、ディレクトリ全体を変換、ファイル構造を保持、統計とエラーログ付き変換レポートを生成
🎯

活用シナリオ

🏢

レガシー移行

金融・ERP・官公庁システムを刷新する際に、GBK/Big5 アーカイブを一括で UTF-8 へ変換。
🌐

グローバルコンテンツQA

コンテンツ/SEO チームが多言語サイト・RSS・メールの charset 宣言を検証し、文字化けを防止。
🧾

データ取込パイプライン

パートナーから届くログや CSV、ETL 入力のエンコーディングを倉庫や Spark に投入する前に確認。
🛠️

開発者デバッグ

Git diff や DB エクスポートをレビューしながら、BOM の衝突や混在エンコーディングを即座に特定。

📋使用ガイド

1️⃣
アップロードまたは貼り付け
エンコーディング分析のためテキストファイルをアップロードまたはテキストコンテンツを貼り付け
2️⃣
エンコーディング検出
検出をクリックしてエンコーディングを自動識別、または既知の場合は手動で指定
3️⃣
結果確認
検出されたエンコーディング、信頼度レベル、BOM の存在、テキストプレビューを確認
4️⃣
必要に応じて変換
ターゲットエンコーディングを選択、テキストを変換、変換された結果をダウンロードまたはコピー

📚技術紹介

🔤エンコーディング標準

文字エンコーディングは異なる言語をサポートするために進化しました:ASCII(1963、7 ビット、128 文字、英語)。ISO-8859 シリーズ(8 ビット、256 文字、地域別:-1 ラテン、-2 中央ヨーロッパ、-5 キリル、-6 アラビア)。アジア言語用 DBCS(ダブルバイト):GB2312(1980、6763 簡体字中国語)、GBK(21886 文字、GB2312 拡張)、Big5(13060 繁体字中国語)、Shift-JIS(日本語、複雑なバイトルール)。Unicode コンソーシアムがユニバーサルエンコーディングを作成:UTF-8(可変 1-4 バイト、ASCII 互換、Web 標準)、UTF-16(2 または 4 バイト、Windows/Java デフォルト、BOM 必要)、UTF-32(固定 4 バイト、無駄だがシンプル)。現代のシステムはストレージに UTF-8、メモリ内処理に UTF-16 を好みます。

🔍検出アルゴリズム

エンコーディング検出は複数の技術を使用:1) BOM 検出:UTF-8 (EF BB BF)、UTF-16 LE (FF FE)、UTF-16 BE (FE FF)、UTF-32 LE (FF FE 00 00)。2) 統計分析:文字頻度分布、バイトパターン、有効なバイトシーケンス。chardet (Python)、ICU (C++)、jschardet (JavaScript) のようなライブラリは、サンプルテキストでトレーニングされた文字 n-gram と言語モデルを使用。3) 検証:バイトがエンコーディングの有効なシーケンスを形成するかチェック(UTF-8 には特定の継続バイトルール、GB2312 には定義されたコード範囲がある)。4) ヒューリスティック:ファイル拡張子 (.txt)、HTTP ヘッダー(charset)、XML 宣言(<?xml encoding="">)。信頼度スコアは複数の信号を組み合わせます。短いテキストまたは珍しい文字で誤検出が発生します。

🔄エンコーディング変換

エンコーディング間の変換には次が必要:1) ソースエンコーディングを使用してソースバイトを Unicode コードポイントにデコード。2) コードポイントをターゲットエンコーディングにエンコード。課題:マップできない文字(すべての Unicode 文字がレガシーエンコーディングに存在するわけではない)- 置換文字 (�)、HTML エンティティ、またはエラーで処理。正規化:Unicode は同じ文字に対して複数の表現を持つ(é は単一のコードポイント U+00E9 または e + 結合アクセントになれる)、NFC は合成に正規化、NFD は分解に。BOM 処理:UTF-16/32 に追加、UTF-8 はオプション(通常省略)。行末:CRLF(Windows)vs LF(Unix)は別途処理が必要。大きなファイルのストリーミング変換は、チャンク間でコンテキストを維持するステートフルデコーダーでチャンクを処理します。

🐛文字化けと修正

文字化け(文字化け、文字化けテキスト)はエンコーディングの不一致から発生:Latin-1 として解釈された UTF-8 テキストは é の代わりに à を表示、中国語は � または 中文 を表示。一般的な原因:サーバーが charset ヘッダーなしで UTF-8 を送信、エディターが間違ったエンコーディングで保存、データベースが Latin-1 カラムに UTF-8 を保存。修正:1) 正しいエンコーディングで再デコード:テキストが UTF-8 だが Latin-1 としてデコードされた場合、Latin-1 バイトに再エンコードしてから UTF-8 としてデコード。2) エンコーディング検出ライブラリを使用。3) HTTP ヘッダー、HTML メタタグ、XML 宣言をチェック。予防:常にどこでも UTF-8 を使用、エンコーディングを明示的に宣言、境界でデータを検証。Ftfy (Python) ライブラリは統計パターンを使用して文字化けを自動修正。

Frequently Asked Questions

エンコーディング検出の精度はどのくらいですか?

検出器は BOM 検出、統計分析、バイトパターン検証を組み合わせて、最も可能性の高い文字セットを推定します。各実行では信頼度スコアも表示されるため、追加の手動レビューが推奨される時期がわかります。
💬

検出後にテキストを変換できますか?

はい。エンコーディングが識別されると、任意のターゲット文字セットを選択し、ブラウザで完全にテキストを変換し、ファイルをアップロードせずに変換された出力をダウンロードまたはコピーできます。
🔍

BOM の追加または削除オプションは何をしますか?

BOM(バイトオーダーマーク)は UTF ファイルの先頭にあるオプションの署名です。BOM を追加すると、一部の Windows ツールがエンコーディングを検出するのに役立ちますが、削除すると UNIX 環境でファイルがスリムに保たれます。テキストが使用される場所に基づいてオプションを切り替えます。
💡

変換後も文字化けが表示されるのはなぜですか?

テキストが以前に間違った文字セットでデコードされた場合、損傷がすでに保存されている可能性があります。元のファイルを再ロードし、正しいソースエンコーディングが選択されていることを確認してから、再度変換してみてください。単一ファイル内の混合エンコーディングも文字化けを引き起こす可能性があります。
📚

テキストはアップロードまたは保存されますか?

いいえ。検出と変換は完全にブラウザで行われます。ファイルはデバイスから離れることはないため、機密文書はプライベートのままです。

💡ベストプラクティス

💡

常に UTF-8 を使用

デフォルトですべての場所で UTF-8 エンコーディングを使用 - データベース、ファイル、HTTP ヘッダー、HTML メタタグ。UTF-8 はユニバーサルで、すべての言語をサポートし、ASCII と下位互換性があり、Web 標準です。HTML (<meta charset="UTF-8">) と HTTP ヘッダー (Content-Type: text/html; charset=utf-8) でエンコーディングを明示的に宣言します。これにより文字化けを防ぎ、システム間で一貫したテキスト表示を保証します。
🔍

変換前に検出

データ破損を避けるため、変換を試みる前に常にエンコーディングを検出します。検出ライブラリの信頼度スコアを使用して精度を検証します。曖昧なケース(低信頼度)の場合、サンプルテキストを手動で検査するか、視覚的検証で複数のエンコーディングを試します。ファイル拡張子や起点だけでエンコーディングを仮定しないでください - 常に検証します。
📝

BOM を正しく処理

確定的なエンコーディング識別のためファイルの先頭で BOM(バイトオーダーマーク)をチェックします。UTF-8 BOM (EF BB BF) はオプションですが検出に役立ちます。UTF-16/32 はバイト順序(LE/BE)を決定するために BOM が必要です。一部のシステムは BOM を期待し、他は拒否します - ターゲットシステムを知ってください。変換中に必要に応じて BOM を削除または追加します。
🩺

文字化け修正をテスト

文字化けテキストを修正する際、パターン分析を通じて元のエンコーディングと誤解釈されたエンコーディングを識別します。一般的な文字化け:Latin-1 としての UTF-8(é の代わりに é)、? またはランダム文字としての中国語。中間エンコーディングに再エンコード、次に正しいもので デコード。ファイル全体を処理する前にサンプルデータで修正をテストします。データがすでにデータベースで破損している場合、一部の文字化けは元に戻せません。
⚠️

境界で検証

システム境界でエンコーディングを検証 - ファイル読み取り、HTTP リクエスト、データベースクエリ、API 呼び出し。すべてのデータ転送で文字セット宣言を使用します。無効なバイトシーケンスを早期に検出するため入力テキストをサニタイズおよび検証します。デバッグのためエンコーディング問題をログに記録します。エンコーディング検出失敗のフォールバック戦略を実装します。単一ファイルまたはデータベースカラム内でエンコーディングを混在させないでください。

🔗関連ドキュメント

🔤RFC 3629 - UTF-8 仕様-UTF-8 エンコーディング形式標準
🌏GB18030 中国語エンコーディング-中国国家標準文字エンコーディング
🔧ICU 文字エンコーディング検出-Unicode 国際コンポーネント検出ライブラリ
📚文字エンコーディングベストプラクティス-文字エンコーディング処理の W3C ガイドライン

User Comments

0 / 2000
Loading...