JavaScript には、文字エンコーディングの変換機能が無い。
これが出来ると、何かと便利である。
今回は、リンクプロパティーで E-mail を選択したときに、メーラーでサブジェクトと本文が文字化けするとのご相談を受けた。
テストすると以下の様になった。
[FCKedito 2.3.x]
Outlook Express : JavaScript で escape された文字列
Thunderbird : JavaScript で escape された文字列
[FCKeditor 2.4.x]
Outlook Express : JavaScript で encodeURIComponent された文字列
Thunderbird : 正常に表示される
実は、すべてのメールソフトに対応する方法は、今の所無い。
今回はユーザーが最も多いと思われる Outlook Express 向けに対策を行う。
Outlook Express では、mailto: の subject パラメータと body パラメータを Shift-JIS として受け取る。
一方、FCKeditorの JavaScript は UTF-8 で書かれている。
よって、UTF-8 -> Shift-JIS -> encodeURIComponent を行う必要がある。
ここで問題なのが UTF-8 -> Shift-JIS 変換だ。
PHP ならば mb_convert_encoding で一発なのに。そうだ、Ajax で呼び出してしまえ!
と言うことで、以下の様に対策が出来た。
続きを読む →