■現象の概要
文字「~」(チルダ)が文字化けして「?」になる場合がある。
(文字化けした状態でMySQLデータベースに保存されている。)
文字化けする状況(現在までにわかっている範囲ですが)は以下です。
○ドキュメント新規作成(編集で入力しなおして保存すると文字化けしない)
○チャンク(新規作成も編集も、どうやっても文字化けする)
このスレッドをざっと見たところ、同様の報告がなかったようなので(このスレッド長いので、見落としてたらすみません)、とり急ぎ報告だけさせていただきます。
■化ける文字
今のところ、いくらかテストした結果わかっているのは、
機種依存文字以外では「~」(チルダ)が文字化けするようです。
(丸囲み数字やローマ数字等の機種依存文字も同様に化けます)
「〒」や「←」のような記号でも、機種依存文字以外なら化けないようです。
ちなみに、
Macの「〜」(波ダッシュ)は文字化けしません。
■環境
MODx 0.9.6.1p2
PHP 5.1.6
MySQL 5.0.22(サーバ側デフォルト:EUC)
config.inc.php/$database_connection_charset = ’utf8’;
(その他、MODx側は全てutf8(Japanese-utf8)で設定している…はず)
MySQLの各テーブルの当該フィールドは「utf8_general_ci」に設定されている。
ブラウザ:WindowsXP/IE6、および、Firefox2、Firefox3
■ドキュメントの場合の応急的対処法
空で新規作成してから、編集で原稿を埋めて保存する。
ということで、対応しています。
■チャンクの場合の応急的対処法
MODx管理画面で保存した後、
データベースをphpMyAdmin等で直接修正し、サイトのキャッシュをクリアする。
ということで、対応しています。
■原因など
現状では、わかっていません。
急ぎの仕事があるので、とりあえず、上記の方法で逃げていますが、
後ほど、ドキュメントの場合に新規と編集とで結果が違うということをヒントに、
save_content.processor.php等を調べてみたいと思っていますが、
もし、上記の解決策をご存知の方がいらっしゃったら、ぜひお願いします。
※追記)波ダッシュとチルダを混ぜて使ってしまっていたので、修正しました。