文字コードを確認する方法|Windows・Mac・Linuxでの手順とツール紹介

文字コードとは 2026

「CSVを開いたら日本語が文字化けした」「別の環境に移したファイルが正しく表示されない」——こうした問題のほとんどは文字コードの不一致が原因です。文字コードを正しく確認・変換できるようになることで、文字化けトラブルの大部分を防げます。

この記事では、Windows・Mac・Linuxそれぞれの環境での文字コード確認方法から、変換の基本・応用まで体系的に解説します。

文字コードとは

文字コードとは

文字コードの基本概念

文字コードとは、コンピューターが文字を数値として扱うための対応表(規則)です。たとえば「A」という文字はASCIIコードで65、UTF-8では0x41という数値に対応しています。コンピューターはすべての文字を数値として保存・処理しており、この「文字↔数値」の変換ルールが文字コードです。

主な文字コード(UTF-8、Shift_JIS、EUC-JPなど)

文字コード 特徴 主な用途
UTF-8 Unicode規格・世界中の文字に対応・可変長(1〜4バイト) Webサイト・現代のアプリ全般・国際的なデータ交換
Shift_JIS(CP932) 日本語専用・2バイト文字・Windows標準 古いWindowsアプリ・Excelのデフォルト・レガシーシステム
EUC-JP 日本語専用・2〜3バイト・UNIX系の伝統的エンコード 古いLinuxシステム・レガシーWebサービス
UTF-16 Unicode規格・固定2バイト(一部4バイト) WindowsのAPIやWord内部処理
ISO-8859-1 西欧言語対応・1バイト固定 欧米の古いWebサイト・メール
ASCII 英数字・記号のみ・1バイト固定 プログラムソースコード・設定ファイル

文字化けの原因と文字コードの重要性

文字化けは、ファイルを保存した文字コード読み込んだ文字コードが一致しないときに発生します。たとえばShift_JISで保存したCSVをUTF-8として読み込むと、日本語が意味不明な記号の羅列になります。

特にExcelは標準でShift_JISを使用するため、UTF-8のCSVをそのまま開くと日本語が文字化けします。UTF-8のCSVをExcelで正しく開くには、BOM付きUTF-8で保存するかExcelのデータインポート機能を使う必要があります。

文字コードを確認する方法(Windows編)

文字コードを確認する方法(Windows編)

テキストエディタでの確認

メモ帳やサクラエディタでの文字コード表示

メモ帳(Windows 10/11):

  • 確認したいファイルをメモ帳で開く
  • 「ファイル」→「名前を付けて保存」を選択する
  • ダイアログ下部の「文字コード」ドロップダウンに現在の文字コードが表示される
  • 確認のみの場合はキャンセルして閉じる

表示される文字コードの対応:

メモ帳の表示 実際の文字コード
UTF-8 UTF-8(BOMなし)
UTF-8(BOM付き) UTF-8(BOM付き)
ANSI Shift_JIS(日本語Windows環境)
Unicode UTF-16 LE(BOM付き)

Windowsでの文字コード確認方法の詳細はこちらの記事も参考になります。

サクラエディタ:

  • ファイルをサクラエディタで開く
  • 画面下部のステータスバーに文字コードが表示される(例:UTF-8、Shift_JIS)
  • または「ファイル」→「文字コードを指定して開く」で確認できる

Visual Studio Code(VSCode):

  • ファイルをVSCodeで開く
  • 右下ステータスバーに文字コードが表示される(例:UTF-8、Shift JIS)
  • クリックすることで別の文字コードで再読み込みまたは保存できる

VSCodeでの文字コード確認と設定の詳しい手順はこちらの記事でも解説されています。

PowerShellでの確認

Get-Content コマンドとエンコード指定例

PowerShellではファイルの先頭バイトを確認することで文字コードを判別できます。

# ファイルの先頭バイトを16進数で確認(BOMの検出)
$bytes = [System.IO.File]::ReadAllBytes("C:\path\to\file.txt")
$bytes[0..3] | ForEach-Object { "{0:X2}" -f $_ }

出力結果とBOMの対応:

# EF BB BF → UTF-8(BOM付き)
# FF FE    → UTF-16 LE
# FE FF    → UTF-16 BE
# BOMなし  → UTF-8またはShift_JIS(自動判別が必要)
# 文字コードを指定してファイルを読み込む
Get-Content "C:\path\to\file.txt" -Encoding UTF8
Get-Content "C:\path\to\file.txt" -Encoding Default  # Shift_JIS(日本語環境)

# ファイルを特定エンコードで読んで内容を確認
$content = Get-Content "C:\path\to\file.csv" -Encoding Default
$content | Select-Object -First 5  # 先頭5行を表示

文字コードを確認する方法(Mac編)

文字コードを確認する方法(Mac編)

テキストエディタでの確認

テキストエディットでエンコード表示

テキストエディット:

  • テキストエディットでファイルを開く
  • 「ファイル」→「別名で保存」を選択する
  • 「プレーンテキストのエンコード」ドロップダウンで現在の文字コードを確認できる
  • 確認のみの場合はキャンセルして閉じる

VSCode(Mac):

Windowsと同様に、ウィンドウ右下のステータスバーに文字コードが表示されます。クリックすることで文字コードの変更も可能です。

ターミナルでの確認

file -I filename コマンドの利用

Macのターミナルではfileコマンドで文字コードを確認できます。Mac・Linuxでのfileコマンドを使った文字コード確認の詳細はこちらの記事も参考になります。

# fileコマンドで文字コードを確認(-Iオプション)
file -I sample.txt

# 出力例
# sample.txt: text/plain; charset=utf-8
# sample.txt: text/plain; charset=iso-2022-jp
# sample.txt: text/plain; charset=unknown-8bit
# 複数ファイルをまとめて確認
file -I *.txt

# 出力例
# file1.txt: text/plain; charset=utf-8
# file2.txt: text/plain; charset=shift_jis
# file3.txt: text/plain; charset=utf-16le

Tips: fileコマンドはあくまで推測による判別です。BOMなしUTF-8とShift_JISは内容によっては判別が難しい場合があります。重要なファイルは複数の方法で確認することを推奨します。

文字コードを確認する方法(Linux編)

文字コードを確認する方法(Linux編)

コマンドラインで確認

file コマンド

# fileコマンドで文字コードを確認
file sample.txt

# 出力例
# sample.txt: UTF-8 Unicode text
# sample.txt: ISO-8859 text
# sample.txt: ASCII text

# -iオプションでMIMEタイプとして表示(Linuxでは小文字の-i)
file -i sample.txt

# 出力例
# sample.txt: text/plain; charset=utf-8

LinuxでのUnicode・文字コード管理の詳細はこちらの記事も参考になります。

enca や iconv コマンドの活用

enca(Encoding Detection and Conversion)はより精度の高い文字コード検出ができるツールです。

# encaのインストール(Ubuntu/Debian)
sudo apt install enca

# encaのインストール(CentOS/RHEL)
sudo yum install enca

# 文字コードを確認
enca sample.txt

# 出力例
# Universal transformation format 8 bits; UTF-8
# Shift-JIS Japanese encoding

# 言語を指定して確認(日本語ファイルの場合)
enca -L ja sample.txt

# 複数ファイルをまとめて確認
enca -L ja *.txt
# hexdumpでBOMを確認
hexdump -C sample.txt | head -3

# 出力例(UTF-8 BOM付きの場合)
# 00000000  ef bb bf e3 81 93 e3 82  93 e3 81 ab e3 81 a1 e3  |...こんにちe|

# BOMの有無でUTF-8を判別
head -c 3 sample.txt | xxd

エディタでの確認

vim、geditなどで文字コード表示

vim:

# vimでファイルを開いた後、コマンドモードで確認
:set fileencoding

# 出力例
# fileencoding=utf-8
# fileencoding=cp932

# または省略形
:set fenc

gedit(Linuxデスクトップ環境):

  • geditでファイルを開く
  • 「ファイル」→「名前を付けて保存」を選択する
  • 「文字エンコード」ドロップダウンで現在の文字コードを確認できる
See also  「ご尽力いただきありがとうございます」の意味と使い方|ビジネス敬語解説

文字コード変換の基本

文字コード変換の基本

iconvを使った文字コード変換

iconvはLinux・Macで標準的に使える文字コード変換コマンドです。iconvコマンドを使った文字コード変換の詳細な使い方はこちらの記事も参考になります。

# 基本構文
iconv -f 変換元エンコード -t 変換先エンコード 入力ファイル > 出力ファイル

# Shift_JISからUTF-8に変換
iconv -f SHIFT_JIS -t UTF-8 input.txt > output.txt

# EUC-JPからUTF-8に変換
iconv -f EUC-JP -t UTF-8 input.txt > output.txt

# UTF-8からShift_JISに変換
iconv -f UTF-8 -t SHIFT_JIS input.txt > output.txt

# 変換と同時に元ファイルを上書き(--outputオプション)
iconv -f SHIFT_JIS -t UTF-8 -o output.txt input.txt

# 対応エンコード一覧を確認
iconv -l

エディタで別の文字コードで保存

VSCodeでの文字コード変換:

  • ファイルをVSCodeで開く
  • 右下の文字コード表示をクリックする
  • 「エンコード付きで保存」を選択する
  • 変換後の文字コードを選択する
  • ファイルが指定した文字コードで保存される

サクラエディタでの変換:

ファイル → 名前を付けて保存 → 「文字コードセット」で変換先を選択 → 保存

変換時の注意点(文字化け・未対応文字)

Shift_JISに変換する際、UTF-8で使われている一部の文字(絵文字・記号・珍しい漢字)はShift_JISに対応していないため変換に失敗することがあります。変換前に必ずバックアップを作成してください。

# 変換できない文字をエラーとして表示(iconvのデフォルト動作)
iconv -f UTF-8 -t SHIFT_JIS input.txt > output.txt
# エラー例: iconv: 不正な入力があります

# 変換できない文字をスキップして変換
iconv -f UTF-8 -t SHIFT_JIS//IGNORE input.txt > output.txt

# 変換できない文字を「?」に置換して変換
iconv -f UTF-8 -t SHIFT_JIS//TRANSLIT input.txt > output.txt

文字コード確認の応用

複数ファイルの文字コード確認

#!/bin/bash
# ディレクトリ内のすべてのテキストファイルの文字コードを確認

TARGET_DIR="/path/to/directory"

echo "=== 文字コード一覧 ==="
find "$TARGET_DIR" -name "*.txt" -o -name "*.csv" | while read file; do
  encoding=$(file -i "$file" | grep -o "charset=.*" | cut -d= -f2)
  echo "$file: $encoding"
done

# Pythonを使った一括確認(より精度が高い)
python3 -c "
import chardet
import glob

for filepath in glob.glob('/path/to/*.txt'):
    with open(filepath, 'rb') as f:
        raw = f.read()
    result = chardet.detect(raw)
    print(f'{filepath}: {result[\"encoding\"]} (信頼度: {result[\"confidence\"]:.0%})')
"

スクリプトや自動処理で文字コードチェック

CSVの一括処理やバッチ変換での文字コード自動判別パターンです。スクリプトでの文字コード管理の応用方法はこちらの記事も参考になります。

#!/bin/bash
# 文字コードを確認して必要に応じてUTF-8に変換するスクリプト

convert_to_utf8() {
  local file="$1"
  local encoding

  # encaで文字コードを判別
  encoding=$(enca -L ja -i "$file" 2>/dev/null | head -1)

  if [[ "$encoding" == *"UTF-8"* ]]; then
    echo "$file: すでにUTF-8です(変換不要)"
  elif [[ "$encoding" == *"Shift_JIS"* ]] || [[ "$encoding" == *"CP932"* ]]; then
    echo "$file: Shift_JIS → UTF-8 に変換します"
    iconv -f SHIFT_JIS -t UTF-8 "$file" > "${file}.utf8"
    mv "${file}.utf8" "$file"
  else
    echo "$file: 文字コードの判別ができませんでした($encoding)"
  fi
}

# ディレクトリ内のCSVを処理
for file in /path/to/data/*.csv; do
  convert_to_utf8 "$file"
done

Web開発やデータベースでの文字コード管理

Web開発では文字コードの統一が特に重要です。

場面 推奨文字コード 設定箇所
HTMLファイル UTF-8 <meta charset="UTF-8">
PHPファイル UTF-8 ファイル保存時の設定・mb_internal_encoding('UTF-8')
MySQLデータベース utf8mb4 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
Apache・Nginx設定 UTF-8 AddDefaultCharset UTF-8
CSVファイル(Excel向け) UTF-8 BOM付き エディタの保存設定

また、Web開発での文字コード管理のベストプラクティスはこちらの記事も参考になります。そして、文字コードに関する実践ガイドはkakiro-webでも発信しています。

まとめ

文字コードの確認は文字化け防止や互換性確保に必須

文字コードの不一致はデータ連携・ファイル共有・Webシステムの至るところで文字化けを引き起こします。ファイルを扱う前に文字コードを確認する習慣をつけることが、トラブルを未然に防ぐ最も確実な方法です。

OSやツールに応じた確認方法を使い分ける

  • Windows: メモ帳・サクラエディタ・VSCodeのステータスバー・PowerShellで確認できる
  • Mac: テキストエディット・VSCode・ターミナルのfile -Iコマンドで確認できる
  • Linux: file -iencahexdump・vimのコマンドモードで確認できる
  • 複数ファイルの一括確認にはシェルスクリプト・Pythonのchardetライブラリが有効
See also  iCloudへのログイン方法|サインイン手順・注意点・トラブル対策

変換時は対応文字やエンコードを意識して安全に処理

文字コード変換にはiconvコマンド・VSCodeの「エンコード付きで保存」・サクラエディタが使えます。Shift_JISへの変換では絵文字や特殊文字が失われるリスクがあるため、変換前のバックアップと変換後の内容確認を必ず行いましょう。現代のシステム開発ではUTF-8(またはutf8mb4)で統一することが最も安全な文字コード管理の基本方針です。

Copied title and URL