文字コード変更アプリ

目次

ファイルのダウンロード


TextEncodingConverter

機能概要

TextEncodingConverterはCSVやテキストファイルの文字コードを変換するシンプルなアプリです

文字コード変換なんていくらでも手段はあるんですが、意外とこのアプリと同じような動きをしてくれるアプリに出会ったことがないので作ってみました

こんな人向けのアプリです
  • エディタアプリなんて使ったことないしよくわからない
  • 仕事で使うファイルだからWEBサイトに不用意にアップできない
  • 最低限の動作で文字コードを変換したい
  • ExcelでCSVを開くと文字化けして困っている
  • 変更前後の文字コードは「Shift-JIS or UTF-8」
  • 変換ツールを使うと「−(マイナス)」や「〜」が「?」になってしまうのを直したい

利用開始方法

ページトップのリンクからダウンロードしたzipファイルを解凍して”TextEncodingConverter.exe“を実行するだけです

SmartScreenが表示された場合

個人開発なので署名証明書までは準備していません

ドキッとする画面ですが、このアプリでパソコンの設定を変えたりすることはないので「詳細情報→実行」で許可してください

使い方

アプリとしての使い方は超絶シンプル、もう一つニッチな需要(ほぼ自分用)のためにコマンドラインでも利用できるようにしています

アプリの使い方

アプリを開いたら下記3手順で変換ファイルが生成されます

  1. 変換後の文字コードをプルダウンから選ぶ ※Shift-JIS (CP932) / UTF-8 (BOMなし) / UTF-8 (BOM付)
  2. 下部のドラック&ドロップ領域に変換したいファイルを投げ込む
  3. 変換したいファイルと同じフォルダに変更後の文字コードを付けた別ファイルが保存される

コマンドラインとしての使い方

コマンドプロンプトやPowerShell、またはプログラムの中の使い方はコチラ

TextEncodingConverter.exe "変換したいファイルのパス" 変換モード

引数(パラメーター)一覧

引数説明設定値の例
第1引数対象ファイルC:\data\input.csv ※パスに空白がある場合は”で囲んでください
第2引数変換モード下記表参照
変換モード変換後の文字コードファイル名の接尾辞備考
sjisShift-JIS (CP932)_sjisWindows標準
utf8-bomUTF-8 (BOM付き)_utf8bomExcel等で開く用
utf8UTF-8 (BOMなし)_utf8Web/システム用
932Shift-JIS (CP932)_sjissjisと同じ
utf8-nobomUTF-8 (BOMなし)_utf8utf8と同じ
上記以外UTF-8 (BOMなし)_utf8utf8と同じ
変換モードのパターン

実行結果の受け取り方(システム連携用仕様)

プログラム実行時の返り値で実行結果と変換後のファイルフルパス取得できるようにしてます

  • 成功時:
    • 終了コード: 0
    • 標準出力: 作成されたファイルのフルパス (例: C:\data\input_sjis.csv)
  • 失敗時:
    • 終了コード: 1
    • 標準エラー出力: エラーメッセージ

サンプルコード

言語別にそのまま使えるサンプルコードです

Python
import subprocess
import sys

exe_path = "TextEncodingConverter.exe"
input_csv = "data.csv"

# サブプロセスとして実行(変換が終わるまで待ちます)
result = subprocess.run(
    [exe_path, input_csv, "sjis"],
    capture_output=True,
    text=True
)

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
    ' exeの場所と対象ファイルを指定
    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
Batch
@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

利用規約・免責事項

こちらを参照ください

あわせて読みたい
利用規約・免責事項 1. はじめに 本利用規約(以下「本規約」といいます)は、TextEncodingConverter (以下「本アプリ」といいます)の利用に関する条件を定めるものです。本アプリをダウ...

更新履歴

目次