「~」の入った文字列をcopyして、UTF-8化したPukiWikiのフォームでpasteすると「〜」に文字化けする。
IMEから「~」を入力した場合は化けない。
しろくろのへやでは化けないので、PHP 4.3.0なら○。PHP 4.2.2なら×なのかな?
ソースを書き換えるタイプのユーザー定義に「 '〜' => '~',」を追加して対処(pukiwiki.ini.phpで記述するときは〜と記述するのではなく〜を直書きすること)。泥縄的ですが…
JIS X 0208/ISO 646 IRV | unicode |
0x5c(\) | 0x005c 0x00a5 |
0x7E(~) | 0x007e 0x203e |
0x2131( ̄) | 0x203e 0xffe3 |
0x213d(―) | 0x2014 0x2015 |
0x2140(\) | 0x005c 0xff3c |
0x2141(~) | 0x301c 0xff5e |
0x2142(∥) | 0x2016 0x2225 |
0x215d(-) | 0x2212 0xff0d |
0x216f(¥) | 0xffe5 0x00a5 |
0x2171(¢) | 0x00a2 0xffe0 |
0x2172(£) | 0x00a3 0xffe1 |
0x224c(¬) | 0x00ac 0xffe2 |
○ × x5c(\) x005c x00a5 x00a5 → x005c 重複 x7E(~) x007e x203e x203e → x007e 重複 x2131( ̄) xffe3 x203e x203e → xffe3 重複 x213d(―) x2015 x2014 x2014 → x2015 x2140(\) xff3c x005c x005c → xff3c 重複 x2141(~) xff5e x301c x301c → xff5e x2142(∥) x2225 x2016 x2016 → x2225 x215d(-) xff0d x2212 x2212 → xff0d x216f(¥) xffe5 x00a5 x00a5 → xffe5 重複 x2171(¢) xffe0 x00a2 x00a2 → xffe0 x2172(£) xffe1 x00a3 x00a3 → xffe1 x224c(¬) xffe2 x00ac x00ac → xffe2
重複コードをどのように変換するか問題ですね。この重複するコードってus-asciiとjisでの差異(backslashとyen、overbarとtilde)をそのまま引きずってるわけかぁ…。