PR

phpmyfaqのデータベース文字化けを直す(1)

phpmyfaqのPDF化の際に文字化けするというのはあちこちで語られている。
残念ながらバージョンの違いなどにより直すことはできなかった。

さて、phpmyfaqがバージョンアップしたので2.5.5から2.6へアップグレードしようとおもった。
念のためphpMyAdminからdumpをとっておこうと思って覗いてみると、文字化けしている。

だがしかし、phpmyfaqの通常利用では文字化けしていない。

スポンサードリンク

ちょうどphp(CakePHP)からRSSを別のところに表示しようと思ったところ文字化けしていた、というのもある。
ところが他のphpmyfaqを使ったサイトで、下位バージョンのRSSを見ても文字化けしていないものもある。
phpmyfaqのRSSが出力する文字化けしたそれは、データベースに保存されている文字化けのままだった。

だがしかし、phpmyfaqの通常利用では文字化けしていない。

ということは、プログラムが一見文字化けしているものを見事にやり取りしているということだ。
そうでなければ動作しないはずだから。
いやな予感はしたものの、アップグレードしてみると、その文字化けしたものに見事に置き換わった。
バックアップファイルを戻すと正しく動作した。

アップグレードの動作と、RSSの動作を見ると、どうやら本来はきちんとした文字で保存されていることが正しいらしい。
実は日本語が動作するかはphpmyfaq上から操作してOKだったという程度の確認だけしかしていなかった。
100件以上の登録をしてしまった後だから、1件1件表示させてDBやテキストファイルにSQLとして記載して行くことも面倒だ。
それこそ最後の手段だが。

データベースの文字化けを直す、というとlatin1からutf8への変更などはあるが、既にこのデータベースやテーブルはutf8だ。
いくつかテストSQLを書いてみたもののデータベースはそれが正しいutf8で保存されているとしているらしく、変換できない。
変換しても期待する結果を得ることはできなかった。

またバックアップ&リストアの際に使ったSQLファイルの書き出しコードを変更したり、書き出されたSQLファイルをテキストエディタで開いて文字コード変更をしても直らない。
おそらく私の理解が出来ていないだけなのだろうが、この問題を解決するにはプログラムを読んでみるしかないようだ。
読んでみても直せなければ変換プログラムを作るしかなさそう…。

コメント

  1. UTA より:

    PDFの文字化けは、治せます。
    本家には投稿したので、次のバージョンから完璧になろうかと
    http://phpmyfaq.bbfriend.net/content/11/19/ja/261%E3%80%80pdf%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8C%E4%BD%9C%E6%88%90%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84.html

    DBのアップでしょうか。ハマります。phpMySQLでテキストでやられたいかがでしょうか。

  2. admin より:

    コメントありがとうございました。
    DBは結局手動でphpMyAdminでやりました・・・
    アップではなく、動作は正常なんですが、DBを直接見ると化けているという摩訶不思議な現象でして。
    phpmyfaqで正常に日本語が使える(CURD)から今まで信用しきっていたぶん、データ量が多くて大変でした。。。
    それから今回のバージョンでPDFやAjax周りが直ってましたね。貴殿の活躍もおありのことでしょう。お疲れ様です。感謝♪
    //phpmyfaqにもwordpressにあるようなタグの統合編集なんかがつくと嬉しいなー