WINDOWS アプリ / 無料

化けたCSVは、ドラッグ1回で直る

TextEncodingConverter は、テキストファイルの文字コードを Shift-JIS と UTF-8 の間で変換する Windows 用のツールです。変換後の文字コードを選んで、ファイルを窓に放り込むだけ。同じフォルダに変換後のファイルが出ます

Windows 10 / 11(64bit)zipを解凍するだけ.NET インストール不要無料

zip形式 / 解凍して TextEncodingConverter.exe を実行するだけ

元のファイルは書き換えません。変換後は別名の新しいファイルとして出ます

変換前 / Excelで開くと
蝠�蜩∫分蜿キ,蝠�蜩∝錐,蜊倅セ。
A-1001,繝懊�シ繝ォ繝壹Φ 鮟�,120
A-1002,繧ッ繝ェ繝�繝� 螟ァ,380
▼ 放り込むだけ
変換後
商品番号,商品名,単価
A-1001,ボールペン 黒,120
A-1002,クリップ 大,380

文字コードの変換は、道具選びのほうが面倒

やりたいことは「開いたら読めるようにする」だけなのに、そこへ辿り着くまでが長くなりがちです

よくある流れ
  • オンラインの変換サービスが出てくるが、仕事のファイルは上げられない
  • エディタを入れるところから始まり、文字コードの指定方法を調べることになる
  • Excel で開くと化けるので、開き方を毎回思い出す羽目になる
  • 変換できたと思ったら、「−」や「〜」だけが「?」に化けている
TextEncodingConverter
  • 変換後の文字コードを選んで、ファイルを放り込むだけ
  • 元ファイルはそのまま。変換後は別名の新しいファイルとして出る
  • 変換は自分のPCの中だけで完結する。ファイルはどこにも送らない
  • Shift-JIS へ変換するときは、記号の取り違えを自動で補正する

画面はこれだけ、選ぶのは文字コード1つ

上のプルダウンで変換後の文字コードを選び、下の点線の枠にファイルを落とします

  • Excel で開くCSV → UTF-8(BOM付) か Shift-JIS(CP932)。BOMなしのUTF-8はExcelが読み違えます
  • Webやシステムに渡すファイル → UTF-8(BOMなし)
  • 古い社内システムへ渡すファイル → Shift-JIS(CP932)
  • 複数のファイルをまとめてドロップできます。終わると変換した件数が出ます
TextEncodingConverter v1.1.0 のメイン画面。上部に変換後の文字コードを選ぶプルダウン、中央に点線で囲まれたドラッグ&ドロップ領域、右下にバージョン表示と「更新を確認」ボタンがある

使い方は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 / 932Shift-JIS (CP932)_sjisWindows標準・古い社内システム向け
utf8-bomUTF-8 (BOM付き)_utf8bomExcel で CSV を開く用
utf8 / utf8-nobomUTF-8 (BOMなし)_utf8Web・システム連携用
上記以外の文字列UTF-8 (BOMなし)_convモード名を打ち間違えたときの逃げ道

例:data.csvsjis で変換すると、同じフォルダに data_sjis.csv ができます

くわしい使い方

右クリックからの一発変換、コマンドライン連携、うまくいかないときの対処をまとめています

エクスプローラの右クリックから一発で変換する

慣れてくるとアプリを起動するのが面倒になります。Windows の「送る」メニューにショートカットを登録すると、右クリックから直接変換できます

  1. キーボードで Win + R を押し、shell:sendto と入力して Enter
  2. 開いた SendTo フォルダに TextEncodingConverter.exe のショートカットを作って置く
  3. エクスプローラでファイルを右クリック →「送る」→「TextEncodingConverter」
  4. アプリが起動するので、プルダウンで文字コードを選んで変換完了

変換モードを決め打ちしたショートカット

「いつも 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 なら iconvnkf が標準で使えます

動作環境と前提

使い始める前に、ここだけ確認してください

  • 対応OSは Windows 10 / 11(64bit) です。配布は zip で、解凍して出てくる TextEncodingConverter.exe をそのまま実行します(インストール不要 / .NET の用意も不要)
  • 署名証明書を付けていないため、初回起動時に SmartScreen の警告が出ます
  • 扱えるのはテキストファイルだけです(対応拡張子は上の8つ)。Excel のブックや画像は変換できません
  • 元の文字コードの判定は BOM → UTF-8 → Shift-JIS の順です。UTF-16 は想定の外なので、いったん UTF-8 で保存し直してから使ってください
  • 数百MB級のファイルも処理できますが、メモリに余裕がある状態で実行してください。大事なファイルはコピーを取ってから変換すると安全です

よくある質問

導入前に引っかかりやすいところをまとめました

SmartScreen の警告が出ます
個人開発のため署名証明書を用意していません。ドキッとする画面ですが、このアプリがパソコンの設定を変えることはないので、「詳細情報 → 実行」で許可してください。警告に気付かず閉じてしまったときは、exe を右クリック →「プロパティ」→「ブロックの解除」にチェックを入れると起動します
インストールは必要ですか
不要です。zip を解凍して出てくる TextEncodingConverter.exe を好きな場所に置いて実行するだけで動きます。.NET も同梱しているので別途の用意はいりません。使わなくなったらファイルを消すだけで、レジストリなどに残るものはありません
元のファイルは書き換わりませんか
書き換わりません。変換結果は常に別名の新しいファイルとして、元ファイルと同じフォルダに出ます。ドラッグ&ドロップで大事なファイルを壊してしまう心配はありません。同名のファイルが既にあるときは、上書きしてよいか確認のダイアログが出ます(コマンドラインから呼んだときだけは確認なしで上書きします)
ファイルはどこかへ送られますか
送られません。変換はすべて自分のPCの中で動きます。通信が発生するのは新しい版が出ているかを確かめるときだけで、1日1回、アプリ名とバージョン番号を当サイトへ送って最新版の番号を受け取るだけの通信です。ファイル名も中身も送りません。コマンドラインから呼んだときは、この更新確認も走りません
Excel で開くならどれを選べばよいですか
UTF-8(BOM付) か Shift-JIS(CP932)を選んでください。Excel は CSV を開くときに文字コードを推測するため、BOMなしの UTF-8 は化けやすくなります。BOM付きにしておけば、ダブルクリックで開いても文字化けしません
UTF-16 のファイルは変換できますか
想定しているのは Shift-JIS と UTF-8(BOM付・BOMなし)の間の変換で、UTF-16 は判定の対象外です。いったん VS Code やメモ帳で開いて UTF-8 で保存し直してから、このアプリで変換してください
これからも無料ですか
いまは無料で公開しています。もし有償版へ移る場合は、事前にお知らせします。利用にあたっての条件は利用規約・免責事項にまとめています

解凍して起動、あとは放り込むだけ

元のファイルは残るので、うまくいかなければ何度でもやり直せます

zip形式 / 解凍して TextEncodingConverter.exe を実行するだけ

対応OS Windows 10 / 11(64bit) / インストール不要 / .NET の用意も不要 / 無料

更新履歴

表は横にスクロールできます

バージョン公開日変更内容
1.1.02026-08-17新しいバージョンが公開されたときに、1日1回だけお知らせするようにしました
画面右下から、手動で更新を確認できます
コマンドラインから使うときは、お知らせは出ません
コマンドラインの実行結果を受け取れるようにしました(成功なら作成したファイルのパスを標準出力へ、失敗なら終了コード1とエラー内容)
.xml と .json も変換できるようにしました
1.0.02026-01-29公開

利用規約・免責事項

ほかのツール

同じ「業務をちょっと楽にする」発想で作ったツールです、どれも無料で使えます