バッチファイルで文字化け対策するには?UTF-8とANSI

バッチファイルを実行して文字化け表示になって困ったことはありませんか?例えば繝・ぅ繝ャ繧ッ繝医Μ縺悟ュ伜惠縺励∪縺帙s縲・ のように表示されることがあります。

こちらではdir コマンドを使用したバッチファイルで文字化け対策を説明します。

二通りのパターンを紹介していますのでご覧ください。

またテスト検証用のバッチファイルは以下になります。

@echo off

rem このスクリプトでは、変数の展開を適切に行うために setlocal enabledelayedexpansion を有効にしています
setlocal enabledelayedexpansion

rem ディレクトリのパスを指定してください
set "targetDirectory=C:\Users\tamaglobal\Desktop\テスト"

rem ディレクトリの存在を確認
if not exist "%targetDirectory%" (
    echo ディレクトリが存在しません。
    exit /b
)

rem ディレクトリの内容を表示
echo ディレクトリ "%targetDirectory%" の内容:
echo ------------------------------
for /f "delims=" %%a in ('dir /b /a "%targetDirectory%"') do (
    echo %%a
)
echo ------------------------------

rem スクリプトの実行が終了したので、setlocal で開始した環境設定を元に戻します。
endlocal

dirは、Windowsのコマンドプロンプトで使用されるコマンドで、指定されたディレクトリ内のファイルおよびサブディレクトリの一覧を表示するために使用されます。

目次

文字化けする理由

バッチファイルやテキストファイルが特定の文字コードで保存されていない場合、コマンドプロンプトがその文字コードを誤って解釈し、文字化けが発生します。

特に、UTF-8で保存されているファイルが、他の文字コードとして解釈されることがあります。

そのため文字化けを解消するためにバッチファイルで日本語が扱えるように修正する必要があります。

文字コード変更|ANSI

テキストファイルからバッチファイルを作成すると通常は「UTF-8」で保存してしまいます。それを「ANSI」へ変更して日本語文字コードが扱えるように修正する方法を紹介します。

文字化け

繝・ぅ繝ャ繧ッ繝医Μ縺悟ュ伜惠縺励∪縺帙s縲・

文字化けすると上記のように表示されます。プログラムが誤っているわけではなく日本語が表示できていない状態です。

UTF-8の確認

バッチファイルをメモ帳で開くと右下にコードが表示されます。「UTF-8」というように表示されます。これが文字コードになります。

名前を付けて保存

文字コードを変更するには「名前を付けて保存」する必要があります。上書き保存では表示されないため注意してください。

ANSI変更後

ANSIへ変更すると画像のように文字化けしていたファイル名が表示されるようになります。手軽なのでお試しください。

chcp 65001

@echo off
chcp 65001

上記のように「chcp 65001」を追加するとバッチファイルの文字コードが「UTF-8」でも上記のように文字化けせずに日本語表示します。

「chcp 65001」と文字セットすることでバッチファイル上でUTF-8の表示が可能となります。

「chcp 65001」は、Windowsのコマンドプロンプトやバッチファイル上で使用されるコマンドで、テキストの表示に関する文字コード(エンコーディング)を設定するためのものです。

まとめ

この記事では、バッチファイルで発生する文字化けの問題に焦点を当て、その対策方法について説明しました。文字化けの原因として、文字コードの不一致が挙げられ、具体的にはUTF-8とANSIの違いが影響を与えます。

対策として、メモ帳での保存時に文字コードを「ANSI」に変更する方法や、「chcp 65001」を使ってUTF-8を指定する方法を紹介しました。これにより、バッチファイルの実行時に日本語文字化けが解消され、正しく表示されるようになります。

この記事を参考になると嬉しいです。

ちんあなご

最後までお読みいただきありがとうございました。

  • URLをコピーしました!

コメント

コメントする

目次