ファイルの文字コードを変換する
Shift_JISで作成したファイルをUTF-8に変更する際に起きたトラブルに関して。
■利用したツール
文字コード変換ツール KanjiTranslator
秀丸エディタ
■失敗例
1. 文字コード一括変換ツールを使ってShift_JISからUTF-8に変更する
携帯の絵文字などのバイナリデータが含まれているファイルは変換に失敗する。
2. バイナリデータを削除してからもう一度トライ。
変換に成功。正しく表示された。
結論:
文字コード一括変換ツールではバイナリデータに対応できない。(できるツールもあるのかもしれないけど)
絵文字を含むソースに関しては別の方法で変換するのがベター。
■失敗例2
ソース内に「encoding=”Shift_JIS”」や「charset=’Shift_JIS’」が含まれているファイルを一括変換ツールにて上記と同じように変換。
1. HIDEMARUで開いてみると、右下の文字コードを表示する部分が「Shift_JIS」になっている。そしてShift_JIS以外のコードが含まれているというエラーが表示される。
2. エンコードにUTF-8を指定して再度ファイルを読み直すと正しく表示された。
3. ソース内の「Shift_JIS」と記述されている部分を全て「UTF-8」に置換して保存。
4. 再度開きなおすと特に警告もなく正しく表示された。
結論:
文字コード指定がファイルに記述してある場合は、まずファイル自体の文字コードを変換してから、文字コード指定部分を書き直すという順番を守るのがベター。
ちなみに、最初に文字コード指定部分を変えて保存して、再度ファイルを開きなおすと文字化けを起こす部分があった。
[上記の失敗から、下記のような場合の変換手順のメモ]
■絵文字と文字コード指定を含んだファイルの文字コードを変換したい場合
1. 一括変換ツールは使えないので、HIDEMARUで開く。
2. 「ファイル」⇒「名前を付けて保存」⇒「エンコードの種類」⇒「Unicode(UTF-8)」を指定して上書き保存。
3. 文字コード指定部分を「Shift_JIS」から「UTF-8」へ全置換
4. 普通に保存してOK
上記手順で文字バケを起こすことなく絵文字も変換できた。
ただ、ファイルを一つづつ変換しなきゃいけないのはめんどくさい。全部一括で行なえるツールはないのだろうか・・・。
