Windows 11 標準アプリ 文字エンコーディング対応状況まとめ
はじめに
Windows 11 上で利用できる主要なアプリケーションが、どの文字エンコーディングに対応しているのかを実際に検証しました。
テキストファイルや CSV を扱う際に「文字化け」に遭遇した経験は、多くの方にあると思います。特に日本語環境では、Shift_JIS と UTF-8 の混在が長年の課題となっています。しかし、実際にどのアプリがどのエンコーディングに対応しているのかを体系的にまとめた情報は意外と少ないのが現状です。
本記事では、メモ帳・VS Code・Excel・Edge・Chrome・エクスプローラー プレビューを対象に、各種エンコーディングのファイルを実際に開いて閲覧・保存できるかを検証した結果をまとめます。
補足: cmd・Windows PowerShell・PowerShell・Visual Studio については、別の記事で検証結果をまとめる予定です。
検証環境
| 項目 | バージョン |
|---|---|
| OS | Windows 11 Pro(25H2) |
| メモ帳 | (バージョン: 11.2510.14.0 ) |
| VS Code | (バージョン: 1.109.3 ) |
| Excel 2024 | (バージョン: 2601 . 64bit) |
| Microsoft Edge | (バージョン: 144.0.3719.115 ) |
| Google Chrome | (バージョン: 145.0.7632.46) |
検証方法
各エンコーディングでテキストファイルを作成し、対象アプリで開いた際の挙動を確認しました。
- 閲覧: ファイルを開いて日本語テキストが正常に表示されるかを確認
- 保存: アプリからファイルを保存する際に選択できるエンコーディングを確認
判定基準は以下の通りです。
- ✅ 可能: 日本語テキストが正常に表示される
- ❌ 不可: 文字化け、表示エラー、またはファイルを開けない
検証結果
閲覧対応
| エンコーディング | メモ帳 | VS Code | Excel CSV | Edge | Chrome | エクスプローラー |
|---|---|---|---|---|---|---|
| Shift_JIS | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| UTF-8(BOM無し) | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ |
| UTF-8(BOM付き) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| UTF-16LE(BOM無し) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| UTF-16LE(BOM付き) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| UTF-16BE(BOM無し) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| UTF-16BE(BOM付き) | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ |
| UTF-32LE(BOM無し) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| UTF-32LE(BOM付き) | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ |
| UTF-32BE(BOM無し) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| UTF-32BE(BOM付き) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ISO-2022-JP | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ |
| EUC-JP | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ |
保存対応
| エンコーディング | メモ帳 | VS Code | Excel CSV |
|---|---|---|---|
| Shift_JIS(ANSI) | ✅ | — | ✅ (デフォルト) |
| UTF-8(BOM無し) | ✅ (デフォルト) | ✅ (デフォルト) | — |
| UTF-8(BOM付き) | ✅ | — | ✅ |
| UTF-16LE(BOM付き) | ✅ | — | — |
| UTF-16BE(BOM付き) | ✅ | — | — |
Edge・Chrome・エクスプローラー プレビューはビューア専用のため、保存機能の検証対象外としています。
保存時の補足事項
メモ帳: 保存ダイアログからエンコーディングを選択できます。デフォルトは UTF-8(BOM無し)です。
VS Code: 保存時にエンコーディングを指定する標準UIはありません。デフォルトの UTF-8(BOM無し)で保存されます。
Excel CSV: 「名前を付けて保存」でファイル形式に「CSV UTF-8」を選択した場合のみ UTF-8(BOM付き)で保存されます。それ以外のファイル形式(CSV、txt、prn、htm)では、すべて Shift_JIS で保存されます。
考察
BOMの有無がもたらす影響
検証結果から最も顕著に読み取れるのは、BOM(Byte Order Mark)の有無がファイルの閲覧可否に大きく影響するという点です。
UTF-16 では、BOM付きであればほとんどのアプリで正常に表示できますが、BOM無しの場合はメモ帳以外のすべてのアプリで文字化けが発生しました。メモ帳が BOM無しの UTF-16 を読める唯一のアプリである点は注目に値します。
UTF-8 については、BOM無しでも大半のアプリが対応しています。唯一の例外が Excel CSV で、UTF-8(BOM無し)のファイルは文字化けします。これは長年知られている問題であり、Excel で UTF-8 の CSV を扱う場合は BOM付きが事実上の必須条件です。
UTF-32 は BOM の有無に関わらず、ほぼすべてのアプリで非対応でした。Excel CSV とエクスプローラー プレビューが UTF-32LE(BOM付き)のみ表示できるという結果は意外でしたが、実用上 UTF-32 を使う場面はほとんどないでしょう。
アプリごとの対応傾向
メモ帳 は閲覧においてはもっとも幅広いエンコーディングに対応しています。UTF-16 の BOM無しを唯一読めるアプリであり、保存時も5種類のエンコーディングを選択できます。ただし、UTF-32 やレガシーな日本語エンコーディング(ISO-2022-JP、EUC-JP)には対応していません。
VS Code はテキストエディタとしては標準的な対応範囲ですが、いくつか注意点があります。ISO-2022-JP を UTF-8 と誤認識して文字化けする、UTF-32LE(BOM付き)を UTF-16LE と誤認識するなど、自動検出の誤りが見られました。一方で EUC-JP には対応しており、レガシーファイルの取り扱いでは部分的に役立ちます。
Excel CSV は BOM への依存度がもっとも高いアプリです。Shift_JIS と BOM付きエンコーディング以外はほぼ文字化けします。保存時のデフォルトが Shift_JIS である点も、UTF-8 が主流となった現在では注意が必要です。
Edge / Chrome は閲覧対応がまったく同じ結果でした。ISO-2022-JP と EUC-JP に対応している唯一のアプリ群であり、レガシーな日本語 HTML ファイルの表示には依然としてブラウザが最適です。
エクスプローラー プレビュー は UTF-16BE(BOM付き)が表示できない(「表示できない」旨のメッセージが出る)一方で、UTF-32LE(BOM付き)は表示できるという独特な挙動を示しました。
Excel VBA のエンコーディング制約
Excel VBA でファイルの読み書きを行う際のエンコーディング対応は、他のアプリと比べて大きな制約があります。
VBA の String 型は内部的に UTF-16LE で文字列を保持しています。このため、ファイル I/O でもUTF-16LE が基本となります。
Open 文 / FileSystemObject では、Shift_JIS、UTF-16LE(BOM付き)、UTF-16LE(BOM無し)の 3 種類のみ対応しています。UTF-8 を指定する選択肢自体が存在しません。
ADODB.Stream を使えば UTF-8 の読み書きが可能になりますが、標準で安定して動作するのは BOM付きの UTF-8 と UTF-16LE のみです。BOM無し UTF-8 を扱うには、BOM の読み飛ばし処理を VBA コード側で実装する必要があり、標準機能だけでは対応できません。
UTF-8 の CSV ファイルを VBA で処理したいという需要は多いにもかかわらず、VBA 単体での UTF-8 対応は限定的です。ADODB.Stream を使った BOM付き UTF-8 の読み書きが、現時点でのもっとも現実的な選択肢となります。
レガシーエンコーディングの対応状況
ISO-2022-JP と EUC-JP に対応しているのは、ブラウザ(Edge / Chrome)と VS Code(EUC-JP のみ)だけでした。
かつて日本語 Web サイトやメールで広く使われたこれらのエンコーディングは、テキストエディタ系のアプリではもはや自動認識の対象外となりつつあります。古い日本語ファイルを扱う必要がある場合は、ブラウザで開くか、nkf などの変換ツールで事前に UTF-8 へ変換しておくのが安全です。
実務での推奨
検証結果を踏まえた、用途別のエンコーディング推奨は以下の通りです。
テキストファイル全般: UTF-8(BOM無し)がもっとも広く対応されており、第一選択として推奨します。
Excel で扱う CSV: UTF-8(BOM付き)を使用してください。BOM無しでは Excel で文字化けします。
VBA でのファイル入出力: ADODB.Stream を使用し、UTF-8(BOM付き)で読み書きするのが現実的です。Open 文や FileSystemObject では UTF-8 を扱えません。
HTML ファイル: UTF-8 で作成し、<meta charset="UTF-8"> を記述してください。ブラウザはレガシーエンコーディングにも対応していますが、新規作成するファイルで使う理由はありません。
他のアプリとの互換性を最大化したい場合: UTF-8(BOM付き)がもっとも安全です。すべてのアプリで閲覧可能であり、Excel CSV の文字化けも回避できます。ただし、プログラムやスクリプトから読み込む際に BOM が問題になるケースがある点には注意してください。