• 締切済み

PHP+MySQL 4.1.20における文字化け

お世話になります。 現在、学内に実験的に設置されているサーバーを使って、そこに 「phpMyFAQ(Ver.2.0.3)」を入れて動かそうと試みています。 phpMyFAQのインストールは済んだのですが、いざ使ってみようと思って カテゴリ追加等をしようとすると、日本語が文字化けして「???????」と いうような状態になります。 きっと文字コードの設定に問題があり、php.iniやmy.cnf等の設定を変える 必要があるのでしょうが、サーバーは共用利用しているものであり、他の 利用者へ影響が出てしまうため、変更が困難です。 また、私自身がまだphpやMySQLに詳しくないため、どこを改善すればよい のかがわからずに困っております。(.htaccessをつくっていろいろと記述 してみたりしたのですが、文字化けは解消されていません。) もし何かアドバイス等ありましたらご教示いただけませんでしょうか。 よろしくお願いいたします。 MySQLのバージョン:4.1.20 PHPのバージョン :4.3.9 <MySQL> character_set_client ujis character_set_connection ujis character_set_database ujis character_set_results ujis character_set_server ujis character_set_system utf8 character_sets_dir /usr/share/mysql/charsets/ [mbstring] mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = SJIS mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none;

みんなの回答

  • kisoyasa
  • ベストアンサー率33% (1/3)
回答No.3

#1です。 むしろ、私のほうが知識がなく、恥ずかしいことを言っているかもしれませんが…。 MySQL側で「SET NAMES」クエリを使うとか、 mb_convert_encoding関数を使ったスクリプトを間に入れる、 ということはできないのですか。 まったくはずしていたらすみません。

sheltie
質問者

お礼

>MySQL側で「SET NAMES」クエリを使うとか、 >mb_convert_encoding関数を使ったスクリプトを間に入れる 検索で調べてみると上記の方法がいろいろと出ていますが、 実際に手を入れるとなるといろいろなところに手をいれないと ならないようです。 my.cnfを調整できれば一番楽なようですが・・・ 度々のアドバイス、ありがとうございます。

  • kisoyasa
  • ベストアンサー率33% (1/3)
回答No.2

>生成されたページのソースを見てみると、文字コードは >『charset=UTF-8』となっていました。 少なくともMySQLがujis(日本語EUC)で処理されているようです。 これに対して、INSERTするデータがUTF-8になっているのではないでしょうか。 私はphpMyFAQのことはまったくわからないのですが、 もし文字コードが一致していない場合、phpMyFAQの設定を変更するか、あるいは文字コードを変換する仕組みを作ることで、一致させればよいと思います。 はずしているかもしれません。

sheltie
質問者

お礼

その後いろいろと検索で調べてみたのですが、phpMyFAQのほうは やはりUTF-8でMySQLを運用することが必要みたいです。 .htaccessでmbstringの値を設定し直したりしてみたのですが、 相変わらず文字化けは解消できていません。 おそらくご指摘の通り文字コードを変換する仕組みを作らないと いけないかもしれません。

  • kisoyasa
  • ベストアンサー率33% (1/3)
回答No.1

全然はずしていたら申し訳ありません。 ひょっとして、シフトJISで入力(Windowsのメモ帳とかコマンドプロンプト)している、ということはありませんか?

sheltie
質問者

お礼

> ひょっとして、シフトJISで入力(Windowsのメモ帳とかコマンドプロンプト)している、ということはありませんか? すみません・・・私の理解不足でご質問の意味がよくわからなかったのですが、 プログラム(phpMyFAQ)上の入力フォームからデータを登録しようとしていますが、 生成されたページのソースを見てみると、文字コードは『charset=UTF-8』と なっていました。 この部分がネックとなっているのでしょうか。

関連するQ&A