FileHint

Shift_JIS から UTF-8 へ文字コードを変換する

日本語の CSV・テキストが文字化けする原因は Shift_JIS と UTF-8 のミスマッチ。OS 別に確実な変換手順をまとめます。

発生する症状

  • Excel で CSV を開くと『繝・Η繝シ』のような化け
  • GitHub 上で日本語のファイルがモジバケ
  • ターミナル出力が ??? になる

Mac / Linux(CLI)

iconv -f SHIFT_JIS -t UTF-8 in.csv > out.csv
# BOM を付けるなら
printf '\xEF\xBB\xBF' > out.csv && iconv -f SHIFT_JIS -t UTF-8 in.csv >> out.csv

Windows(PowerShell)

$bytes = [System.IO.File]::ReadAllBytes('in.csv')
$text = [System.Text.Encoding]::GetEncoding('shift_jis').GetString($bytes)
[System.IO.File]::WriteAllText('out.csv', $text, [System.Text.UTF8Encoding]::new($true))

VS Code

  1. ファイル開く > 右下の文字コード表示をクリック
  2. 『エンコードで開き直す』 > Shift_JIS
  3. 再度 『エンコードで保存』 > UTF-8 with BOM

どのエンコーディングで保存すべきか

  • 業務 CSV を Excel で開く前提なら UTF-8 with BOM
  • Web / プログラム間のやり取りは UTF-8 (BOM なし)

関連する拡張子