Macに環境移行した際、多くの人がCSファイル(の全角文字部分)の文字化けに悩まされているかと思います。
原因
WindowsとMacで日本語を扱う際に用いられるエンコーディングが異なるためです。
- Windowsでは、Shift-JIS
- Macでは、UTF-8
がそれぞれ用いられています。
本題
この問題を解決するには、CSファイルをBOM付きUTF-8で保存し直す必要がありますが。
数百以上あるCSファイルを、全て手作業で保存し直すのはとても大変な作業になります。
そこで、かんたんに解決できる方法をご紹介します。
それはズバリ! Windows環境にてバッチファイルを作成し変換処理したものをMacへコピーすることです! 一度作成すれば、今後も同じ方法で変換処理が可能です。
上記の記事にある「シフトJIS ⇒ BOM 付き UTF-8」の部分が該当します。
使い方は、記載されているソースコードをメモ帳等へ貼り付けし、拡張子を「.bat」とすることで使える様になります。(できれば、エンコーディングをANSIで保存すると良いです。)
あとは、このバッチファイル(のアイコン)へ変換したいファイルをドラッグ&ドロップするだけです。
しかし、
この記事に記載されているままでは。「.txt」と「.csv」しか変換する事ができない様ですので、CSファイルのままバッチ処理させるには、少し手を加える必要があります。
(閉じてしまった人は、右クリック→編集で開けます。)
具体的には、
$fileTypes = @('.txt', '.csv')
の部分に.CSを追加して $fileTypes = @('.txt', '.csv', '.cs')
と変更し、このままだと元ファイルとは別でコピーが生成される仕様なので、 $dst = $file.fullname + ".utf8bom" + $file.extension
の部分を短くして $dst = $file.fullname
に変更する事で、元ファイルへ上書きする仕様にできます。
(こうしないと、同フォルダ内に元ファイルとコピーが混在して仕分けが大変になります。)
これで、CSファイルのままでドラッグ&ドロップすると、元ファイルが変換されたデータに上書きされる仕様となりました!
最後に注意点
※処理させる前に、必ず元ファイルのコピーを別で取っておきましょう。
(ゴミ箱にも残らないので、処理が失敗すると最悪詰んでしまいます。)
※また、当方およびバッチの制作者様は、いかなる損害についても責任を負いません。
試される際は、自己責任でお願い致します。
今回は以上になります!
お疲れ様でした!!!