化けたCSVは、ドラッグ1回で直る
TextEncodingConverter は、テキストファイルの文字コードを Shift-JIS と UTF-8 の間で変換する Windows 用のツールです。変換後の文字コードを選んで、ファイルを窓に放り込むだけ。同じフォルダに変換後のファイルが出ます
zip形式 / 解凍して TextEncodingConverter.exe を実行するだけ
元のファイルは書き換えません。変換後は別名の新しいファイルとして出ます
文字コードの変換は、道具選びのほうが面倒
やりたいことは「開いたら読めるようにする」だけなのに、そこへ辿り着くまでが長くなりがちです
- オンラインの変換サービスが出てくるが、仕事のファイルは上げられない
- エディタを入れるところから始まり、文字コードの指定方法を調べることになる
- Excel で開くと化けるので、開き方を毎回思い出す羽目になる
- 変換できたと思ったら、「−」や「〜」だけが「?」に化けている
- 変換後の文字コードを選んで、ファイルを放り込むだけ
- 元ファイルはそのまま。変換後は別名の新しいファイルとして出る
- 変換は自分のPCの中だけで完結する。ファイルはどこにも送らない
- Shift-JIS へ変換するときは、記号の取り違えを自動で補正する
画面はこれだけ、選ぶのは文字コード1つ
上のプルダウンで変換後の文字コードを選び、下の点線の枠にファイルを落とします
- Excel で開くCSV → UTF-8(BOM付) か Shift-JIS(CP932)。BOMなしのUTF-8はExcelが読み違えます
- Webやシステムに渡すファイル → UTF-8(BOMなし)
- 古い社内システムへ渡すファイル → Shift-JIS(CP932)
- 複数のファイルをまとめてドロップできます。終わると変換した件数が出ます

使い方は3通り
その場で1回だけ変換したいときから、スクリプトに組み込むときまで
ドラッグ&ドロップ
アプリを起動して、変換後の文字コードを選んでファイルを放り込みます。複数まとめて放り込めるので、フォルダ内のCSVを一気に変換できます
右クリックの「送る」
Windows の 「送る」メニュー にショートカットを置くと、エクスプローラで右クリックして直接変換できます。変換モードを決め打ちしたショートカットなら、選ぶ操作もいりません
コマンドライン
第1引数にファイルのパス、第2引数に変換モードを渡します。成功なら作成したファイルのフルパスが標準出力に、失敗なら終了コード1とエラー内容が返るので、Python や VBA から呼べます
使い始めるまでは3手
インストール作業はありません
zip を解凍して起動
出てくる TextEncodingConverter.exe をダブルクリックするだけです。初回は SmartScreen の警告が出ることがあります(対処は下のよくある質問に載せています)
変換後の文字コードを選ぶ
プルダウンから Shift-JIS(CP932) / UTF-8(BOMなし) / UTF-8(BOM付) の3つ。起動直後は UTF-8(BOM付) が選ばれています
ファイルを放り込む
点線の枠へドラッグ&ドロップします。元ファイルと同じフォルダに、文字コード名を付けた別名のファイルができます
大事なファイルを壊さない作り
仕事のファイルを扱う道具なので、消えない・出ていかないところを先に書いておきます
元ファイルは書き換えない
変換結果は常に別名の新しいファイルとして出ます。思った文字コードにならなくても、元ファイルから何度でもやり直せます
上書きの前に確認が出る
同じ名前のファイルが既にあるときは、上書きしてよいか確認のダイアログが出ます。確認なしで上書きするのは、コマンドラインから呼んだときだけです
ファイルの中身は外に出ない
変換は自分のPCの中だけで動きます。通信するのは更新確認のときだけで、送るのはアプリ名とバージョン番号だけです。ファイル名も中身も送りません
記号の取り違えを補正
Shift-JIS へ変換するときだけ、全角マイナスや波ダッシュ(「−」「〜」)を Shift-JIS 側にある文字へ置き換えます。ここを直さないと「?」に化ける定番の箇所です
更新確認はアプリの画面から動かしたときだけです。コマンドラインで呼ぶときは通信もお知らせも発生しません
対応ファイルと変換モード
扱えるのはテキストファイルだけです
- 対応する拡張子は
.txt.csv.log.tsv.dat.ini.xml.jsonの8つで、これ以外は受け付けません - Excel の
.xlsx、画像、PDF などのバイナリファイルは対象外です - 元の文字コードは自動で判定します(BOM付きUTF-8 → BOMなしUTF-8 → Shift-JIS の順で判定)
| 変換モード | 変換後の文字コード | ファイル名の接尾辞 | 使いどころ |
|---|---|---|---|
sjis / 932 | Shift-JIS (CP932) | _sjis | Windows標準・古い社内システム向け |
utf8-bom | UTF-8 (BOM付き) | _utf8bom | Excel で CSV を開く用 |
utf8 / utf8-nobom | UTF-8 (BOMなし) | _utf8 | Web・システム連携用 |
| 上記以外の文字列 | UTF-8 (BOMなし) | _conv | モード名を打ち間違えたときの逃げ道 |
例:data.csv を sjis で変換すると、同じフォルダに data_sjis.csv ができます
くわしい使い方
右クリックからの一発変換、コマンドライン連携、うまくいかないときの対処をまとめています
エクスプローラの右クリックから一発で変換する
慣れてくるとアプリを起動するのが面倒になります。Windows の「送る」メニューにショートカットを登録すると、右クリックから直接変換できます
- キーボードで
Win + Rを押し、shell:sendtoと入力して Enter - 開いた SendTo フォルダに
TextEncodingConverter.exeのショートカットを作って置く - エクスプローラでファイルを右クリック →「送る」→「TextEncodingConverter」
- アプリが起動するので、プルダウンで文字コードを選んで変換完了
変換モードを決め打ちしたショートカット
「いつも Shift-JIS に変換する」と決まっているなら、変換モードを引数で仕込んだショートカットを作っておくと、プルダウンの選択も省けます。SendTo フォルダのショートカットを右クリック →「プロパティ」→「リンク先」を次のように書き換えます(%1 に右クリックしたファイルのパスが入ります)
"C:\tools\TextEncodingConverter\TextEncodingConverter.exe" "%1" sjis
ショートカットの名前を「Shift-JISに変換」にしておけば、右クリック → 送る → 「Shift-JISに変換」で一発です。UTF-8用にもう1つ並べて作っておくと便利です
コマンドラインから使う(引数・戻り値・サンプルコード)
コマンドプロンプトや PowerShell から、あるいはプログラムの中から呼び出せます
TextEncodingConverter.exe "変換したいファイルのパス" 変換モード
引数
- 第1引数:対象ファイル(例
C:\data\input.csv。パスに空白があるときは"で囲む) - 第2引数:変換モード(
sjis/utf8/utf8-bomなど、上の表を参照)
実行結果の受け取り方
- 成功:終了コード
0/ 標準出力に作成されたファイルのフルパス(例C:\data\input_sjis.csv) - 失敗:終了コード
1/ 標準エラー出力にエラーメッセージ - コマンドラインから呼んだときは、同名ファイルがあっても確認なしで上書きします
Python
import subprocess
import sys
exe_path = "TextEncodingConverter.exe"
input_csv = "data.csv"
# 変換が終わるまで待つ。標準出力は CP932 で受け取ると安定する
result = subprocess.run(
[exe_path, input_csv, "sjis"],
capture_output=True,
text=True,
encoding="cp932",
)
if result.returncode == 0:
new_file_path = result.stdout.strip() # 作成されたファイルのフルパス
print(f"変換成功: {new_file_path}")
# ここから pandas で読み込むなどの処理へ
# df = pd.read_csv(new_file_path, encoding="cp932")
else:
print(f"エラー発生: {result.stderr}")
sys.exit(1)
VBA
Option Explicit
' 成功すると変換後のファイルパスを返し、失敗するとエラー文言を返す
Public Function ConvertTextFile(ByVal exePath As String, ByVal srcPath As String, ByVal encTag As String) As String
Dim wsh As Object
Dim oExec As Object
Dim cmd As String
Dim result As String
Set wsh = CreateObject("WScript.Shell")
' パスのスペース対策でダブルクォーテーションを付与
cmd = """" & exePath & """ """ & srcPath & """ " & encTag
Set oExec = wsh.Exec(cmd)
' 終わるまで待機
Do While oExec.Status = 0
DoEvents
Loop
If oExec.ExitCode = 0 Then
' 成功時はファイルパスが返る(改行を除去)
result = Replace(oExec.StdOut.ReadAll(), vbCrLf, "")
ConvertTextFile = result
Else
result = "ERROR: " & oExec.StdErr.ReadAll()
ConvertTextFile = result
End If
Set oExec = Nothing
Set wsh = Nothing
End Function
Sub TestRun()
Dim newPath As String
newPath = ConvertTextFile("C:\Tools\TextEncodingConverter.exe", "C:\Data\list.csv", "sjis")
If InStr(newPath, "ERROR:") > 0 Then
MsgBox "失敗しました", vbCritical
Else
MsgBox "変換完了。ファイルを開きます: " & newPath
Workbooks.Open newPath
End If
End Sub
バッチファイル
@echo off
set EXE_PATH="TextEncodingConverter.exe"
set INPUT_FILE="C:\data\daily_report.csv"
rem 実行して結果を一時ファイルに保存
%EXE_PATH% %INPUT_FILE% sjis > result_path.txt
rem 成功か失敗かを判定 (0=成功)
if %ERRORLEVEL% equ 0 (
set /p NEW_FILE=<result_path.txt
echo 成功しました
echo 作成ファイル: %NEW_FILE%
) else (
echo 変換に失敗しました
pause
)
del result_path.txt
PowerShell(フォルダ内を一括変換)
$exe = "C:\tools\TextEncodingConverter\TextEncodingConverter.exe"
$target = "C:\work\csv"
Get-ChildItem -Path $target -Filter *.csv -Recurse | ForEach-Object {
Write-Host "Converting: $($_.FullName)"
& $exe $_.FullName utf8
}
変換したのに文字化けが直らない
Excel で開くとまだ化ける
Excel は CSV を開くときに文字コードを推測しています。UTF-8(BOMなし)は Excel で化けやすい形です
- Excel で開くなら BOM付き(
utf8-bom) を選ぶ - または Shift-JIS(
sjis) に変換する - 古いシステムが出力したファイルは、元の文字コードが Shift-JIS でない可能性もあります。VS Code などで開いて確かめるのも手です
「−」「〜」だけが「?」になる
マイナス記号と全角ハイフン、波ダッシュの典型的な取り違えです。UTF-8 の「−(全角マイナス)」などが、単純な変換では Shift-JIS 側に見つからず「?」になります
このアプリは Shift-JIS へ変換するときに、全角マイナス・ハイフン類を半角ハイフンへ、波ダッシュを全角チルダへ自動で置き換えます。それでも「?」が残る場合は、元ファイルに Shift-JIS へ変換できない文字(特殊記号・絵文字など)が含まれています
元ファイルが UTF-16 だった
想定しているのは Shift-JIS と UTF-8(BOM付・BOMなし) の間の変換です。UTF-16(BE/LE)などは判定の対象外なので、うまく読めません
その場合はいったん VS Code やメモ帳で開いて UTF-8 で保存し直してから、このアプリで Shift-JIS 化する2段階が確実です
アプリが起動しない・実行できない
ダブルクリックしても起動しない
- zip から展開していない(zipの中のまま実行しようとしている)。まず展開してください
- SmartScreen の警告に気付かず閉じた可能性。右クリック →「プロパティ」→「ブロックの解除」にチェック → OK
- セキュリティソフトに削除されていないか確認(個人開発のため誤検出されることがあります)
バッチで動かすとログが化ける
コマンドプロンプトの既定の文字コードは Shift-JIS(CP932)です。バッチファイル自体を Shift-JIS で保存するか、PowerShell から実行してください。Python から呼ぶときは subprocess.run(..., encoding="cp932") のように CP932 を明示すると、標準出力の取得が安定します
Windows 以外で使いたい
このアプリは Windows 10 / 11 向けです。macOS や Linux では動きません。Mac なら iconv、Linux なら iconv や nkf が標準で使えます
動作環境と前提
使い始める前に、ここだけ確認してください
- 対応OSは Windows 10 / 11(64bit) です。配布は zip で、解凍して出てくる TextEncodingConverter.exe をそのまま実行します(インストール不要 / .NET の用意も不要)
- 署名証明書を付けていないため、初回起動時に SmartScreen の警告が出ます
- 扱えるのはテキストファイルだけです(対応拡張子は上の8つ)。Excel のブックや画像は変換できません
- 元の文字コードの判定は BOM → UTF-8 → Shift-JIS の順です。UTF-16 は想定の外なので、いったん UTF-8 で保存し直してから使ってください
- 数百MB級のファイルも処理できますが、メモリに余裕がある状態で実行してください。大事なファイルはコピーを取ってから変換すると安全です
よくある質問
導入前に引っかかりやすいところをまとめました
SmartScreen の警告が出ます
インストールは必要ですか
元のファイルは書き換わりませんか
ファイルはどこかへ送られますか
Excel で開くならどれを選べばよいですか
UTF-16 のファイルは変換できますか
これからも無料ですか
解凍して起動、あとは放り込むだけ
元のファイルは残るので、うまくいかなければ何度でもやり直せます
zip形式 / 解凍して TextEncodingConverter.exe を実行するだけ
対応OS Windows 10 / 11(64bit) / インストール不要 / .NET の用意も不要 / 無料
更新履歴
表は横にスクロールできます
| バージョン | 公開日 | 変更内容 |
|---|---|---|
| 1.1.0 | 2026-08-17 | 新しいバージョンが公開されたときに、1日1回だけお知らせするようにしました 画面右下から、手動で更新を確認できます コマンドラインから使うときは、お知らせは出ません コマンドラインの実行結果を受け取れるようにしました(成功なら作成したファイルのパスを標準出力へ、失敗なら終了コード1とエラー内容) .xml と .json も変換できるようにしました |
| 1.0.0 | 2026-01-29 | 公開 |
ほかのツール
同じ「業務をちょっと楽にする」発想で作ったツールです、どれも無料で使えます


