仕様と根拠
UTF-8 として読めるかの判定
WHATWG Encoding Standard 8.1.1 の UTF-8 decoder の規則で、バイト列を 1 つずつ確かめます。先頭バイトが C2〜DF なら後続 1 バイト、E0〜EF なら 2 バイト、F0〜F4 なら 3 バイトが 80〜BF の範囲で続く必要があり、E0・ED・F0・F4 の直後には追加の制限があります。外れた箇所は U+FFFD(�)に置き換わる不正なバイト列として数え、何バイト目・何行目かを示します。
BOM と Shift_JIS の確認
先頭の EF BB BF は UTF-8 の BOM で、UTF-8 として読むときは読み捨てられます(6.1・6 節)。UTF-8 として読めない場合は、バイト列が Shift_JIS(CP932)の 1 バイト文字・半角カナ・2 バイト文字の形として成り立つかも確かめます。形が成り立つだけでは Shift_JIS だと断定できないため、表示は常に「可能性」です。
貼り付けたテキストの化け方
ファイルがなく文字だけを貼り付けたときは、すでに置き換わった U+FFFD の数と位置、UTF-8 を Latin-1 系で読んだときの「é」のような並び、UTF-8 のひらがなを Shift_JIS で読んだときに多い「縺」「繧」「繝」を数えます。後の 2 つは仕様ではなく経験則による目安です。
根拠にした仕様・資料
| 仕様・資料 | 確認日 | 使った箇所 |
|---|---|---|
| WHATWG Encoding Standard | 2026年10月28日 | 8.1.1 UTF-8 decoder(バイトの範囲と error)・6.1 BOM sniff(EF BB BF)・6 UTF-8 decode(先頭の BOM を読み捨てる) |
指摘の段階
- エラー: 仕様に反していて、正しく読めない・処理できない入力です。
- 警告: 読めるものの、仕様の推奨に反する・矛盾する・意図と違う結果になりやすい入力です。
- 情報: 誤りではありませんが、知っておくとよい扱い(読み飛ばした部分や解釈)です。
入力の扱い(送信しない仕組み)
処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。
このツールでできないこと(制約)
- 文字コードを断定はしません。UTF-8 として読める並びでも、他の文字コードでないとまでは言えず、Shift_JIS として形が合っても本当に Shift_JIS とは限りません。
- Shift_JIS や他の文字コードへの復号・変換はしません。診断だけで、元のファイルは変更しません。表計算ソフトで開き直して UTF-8 で保存し直してください。
- 貼り付けたテキストの診断は経験則です。画面に表示された時点で別の文字に置き換わった化けは、元のバイトを復元できないため見つけられないことがあります。
- ファイルの中身(列の数・空欄など)は検査しません。それらを調べるときは、CSV の列の揃いを検査する別の道具を使います。
ご利用にあたって
- 判定は「可能性」です。重要なデータは、元のファイルを作ったソフトの文字コードの設定も確認してください。
- 大きなファイルはお使いの端末の性能によって処理に時間がかかることがあります。