• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データベースの文字が???で表示される)

データベースの文字が???で表示される

このQ&Aのポイント
  • PHPによるwebアプリケーションスーパーサンプルという参考書のプログラム(p552)でデータベースの文字が???で表示される問題の原因と解決方法を説明します。
  • 問題の原因は文字コードの変換が正しく行われていないことです。データの文字コードを変換する関数を使用して、表示するデータの文字コードを変換する必要があります。
  • 具体的には、cnv_encという関数を使用してデータの文字コードを変換します。この関数は、mb_convert_encoding関数を使用して文字コードを変換し、表示する際には適切な文字コードに変換されます。

質問者が選んだベストアンサー

  • ベストアンサー
  • 1E-9
  • ベストアンサー率51% (22/43)
回答No.2

mysqlに show variables like "char%"; をかけるとどのような結果が出るでしょうか。 参考URLはUTF-8への設定ですが、自分も同じように文字化けした時はこれで解決しました。 ページ下の方が下記の部分が解決策です。 /etc/my.cnf [mysqld] default-character-set=utf8 skip-character-set-client-handshake utf-8をeuc-jpにすれば解決しそうですがどうでしょうか。

参考URL:
http://wota.jp/ac/?date=20061011
thjki6624
質問者

お礼

回答ありがとうございます。 そもそもこんな関数使う必要なかったみたいです。 mysql_query("set names utf8",接続リソース)でうまくできました。 mysqldのデフォルトをutf8にするということは大変参考になりました。ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

お使いのphpとMySQLのバージョンはいくつでしょうか?MySQLは4.0までと4.1以降で大きく変わりました。 今現在はmysql_set_charset()でクライアントの文字セットを指定すれば、あとは自動で変換されます(自分でさらに変換すると文字化けします)。 http://php.net/manual/ja/function.mysql-set-charset.php #このあたりは書籍の弱い部分なので、自分で最新の情報を収集してください。

thjki6624
質問者

お礼

C:\Windows\System32>mysql --version mysql Ver 14.14 Distrib 5.5.16, for Win32 (x86) C:\Windows\System32>php --version PHP 5.3.8 (cli) (built: Aug 23 2011 11:50:20) Copyright (c) 1997-2011 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies というバージョンらしいです。このバージョンだと上記のようなコードではいけないのですかね? まだ、PHPを始めたばかりで基礎もままならない状態なので最新の情報を収集するという作業に非常に苦労しています。。

thjki6624
質問者

補足

XAMPPでphpとmysqlをインストールしたのですが、XAMPPのほうに問題があるのですかね? ApacheFriends XAMPP version 1.7.7です。 いろいろ試していますが、全然できません。助けてください。

すると、全ての回答が全文表示されます。

関連するQ&A