フローサービスを使用して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への変換の場合の変換テーブルを記述する形になります。変換テーブルなどの詳細な方法については、StringReplace関数のヘルプを参照してください。