波ダッシュの文字化け
波ダッシュの文字化け 「~」とは: JIS規格(JIS X 0208)では「波ダッシュ(WAVE DASH)」という名前で定義されています。 [Shift_JIS]での16進コードは[0x8160] [Shift_JIS]の「波ダッシュ」は左から「上がって下がる」字体 [Unicode]の「WAVE DASH」は、左から「下がって上がる」字体が定義 [Shift_JIS]の[0x8160]は、[Unicode]の[U+301C]と同じ名称で、 [Unicode]の[U+FF5E]と似た文字の形をしている、 [Unicode]の「WAVE DASH」の字形である、左から「下がって上がる」字体は存在していませんでした。 Unicodeコンソーシアムが公開している、「Shift-JIS to Unicode」の2011/10/14版 ----------------------------------------------------------- Shift_JIS Unicode 0x8160 ←→ U+301C <対応文字なし> ← U+FF5E ----------------------------------------------------------- 波ダッシュと、全角チルダ問題 波ダッシュ 〜 0x8160(Shift_JIS) 0x301C(UTF-8) WAVE DASH(ユニコードポイント : U+301C) 全角チルダ ~ Shift_JIS には無い 0xFF5E(UTF-8) FULLWIDTH TILDE(ユニコードポイント : U+FF5E) 波ダッシュ(0x8160) を UTF-8 に変換すると、CP932と、Shift_JIS で変換結果が異なる実装がある いろんな実装毎に結構まちまちなのが問題 このため、Shift_JIS と、UTF8を行ったり来たりする環境だと、途中で、波ダッシュが、全角チルダに変わったり、全角チルダを Shift_JIS で解釈しようとして、存在しない文字扱いになったりする --------------------------------------------------------------------- 参考 : iconv の 変換ルール 元の文字コード 変換前の文字 変換後の文字 CP932 波ダッシュ(0x8160) 全角チルダ(0xFF5E) Shift_JIS 波ダッシュ(0x8160) 波ダッシュ(0x301C) ---------------------------------------------------------------------