フローサービスを使用してWindows環境で作成したShift_JISのテキストとその他の日本語文字コード(Shift_JIS、EUC-JP、 ISO-2022-JP等)のテキストとの相互変換を行うときに、下記の文字が文字化けする場合があります。
文字化けする文字とShift_JIS文字コード
波線 ~ (8160)
二重縦線 ∥ (8161)
マイナス記号 - (817c)
セント記号 ¢ (8191)
ポンド記号 £ (8192)
ノット記号 ¬ (81ca)
全角ダッシュ ― (815c)
これは、Windows環境のフローで作成したShift_JISのテキストは実際はWindows-31Jであり、その他の日本語文字コードとUnicodeを介して相互変換するときに変換される文字コードポイントの相違により発生する現象です。
※以降、Windows環境で使用されるShift_JISコードは、Windows-31Jと記述します。
文字化けの発生パターン
フローで選択できるエンコーディングはWindows-31J、Shift_JIS、EUC-JP、ISO-2022-JPと4種類あり(utf-8とutf-16は除く)、Shift_JIS、EUC-JP、ISO-2022-JPの3種類の中で相互に変換を行う場合は文字化けは発生しませんが、Windows-31Jとの相互変換を行う場合は文字化けが発生します。
例1
上記7文字が含まれている場合には文字化けが発生します。
Windows-31J
↓
一旦、Unicode変換表に基づきUnicodeへ変換
↓
Shift_JIS
EUC-JP
ISO2022-JP
例2
上記7文字が含まれている場合にも文字化けは発生しません。
Shift_JIS
EUC-JP
ISO2022-JP
↓
一旦、Unicode変換表に基づきUnicodeへ変換
↓
Shift_JIS
EUC-JP
ISO2022-JP
文字化けしないようにする方法
これら文字化けの解消方法として、StringReplace関数で明示的にコードポイントの相違が発生する文字のコードポイントを指定して変換する方法があります。それぞれ、Windows-31JからJIS系文字コードへの変換の場合と、JIS系文字コードからWindows-31Jへの変換の場合の変換テーブルを記述する形になります。
※フローで複数の文字コード設定を試しても改善されない場合、ファイルを開くエディター等の文字コード設定が原因の可能性があります。エディター等の文字コード設定をご確認ください。