こんにちは、アプリケーションで文字エンコーディングの問題があり、何か助けを求めることにしました。ガイダンスが与えられたにもかかわらず、問題を解決できなかったためです。 </p>
また、問題を解決するためにこれまでに行ったことをすべて投稿します。
1) データベース: テーブルの照合順序を変更しようとしました。テーブルの 1 つに対して SHOW TABLE STATUS が提供する情報を次に示します。
名前 = test_groups
エンジン = InnoDB
バージョン = 10
Row_format = コンパクト
照合 = utf8_swedish_ci
データベース文字変数は以下を提供します:
| | character_set_client = utf8
| character_set_connection = utf8
| character_set_database = latin1 (これが原因なのかな?)
| character_set_filesystem = バイナリ
| character_set_results = utf8
| character_set_server = utf8
| character_set_system = utf8
2)Apache httpd.confには次のものがあります:
AddDefaultCharset UTF-8
3) 私の Zend アプリケーション application.ini で:
resources.view.encoding = "UTF-8"
4) Firefox 14.0.1 ブラウザーで
edit->preferences->content->advanced->Default character encoding = Unicode (UTF-8)
5) 私の php コードのメタタグで:
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
他にも興味深いことがいくつかあります。自分のページを見て、Firefox から変更すると
View->Character encoding->Western (ISO-8859-1)
、MySQL データベースからの � 文字は ö 文字に問題ありませんが、私の php コードからの ö 文字は â t 文字に変わります。
MySQLデータベースからのデータのエンコーディングをチェックするときの別のこと
mb_detect_encoding($DATA_FROM_MYSQL_DATABASE)
UTF-8を出力します!! 最後に、コードで行う場合:
utf8_encode($DATA_FROM_MYSQL_DATABASE)
そして、問題がなくなるという結果を出力します。ここで何が起こっているのか x) すべての助けに感謝します