ホームページ >バックエンド開発 >PHPチュートリアル >PHPがmysqlデータベースを読み込む際に文字化けする場合の解決方法について

PHPがmysqlデータベースを読み込む際に文字化けする場合の解決方法について

WBOY
WBOYオリジナル
2016-07-29 09:14:53901ブラウズ

phpがmysqlデータベースを読み込む際の文字化けの解決方法について

phpがmysqlを読み込む際に、以下の箇所で文字セットが関係します。
1. データベーステーブル作成時にデータベーステーブルの文字セットを指定します。例:

  • create table tablename
  • (
  • id int not null auto_increment,
  • title varchar(20) not null,
  • primary key ('id')
  • )DEFAULT CHARSET =UTF8;

コードをコピー
2. mysql の文字セット
mysql には、character_set_client、character_set_results、character_set_connection の 3 つの重要な変数があります。
character_set_client を設定することで、PHP がデータベースに保存するエンコード方式を Mysql に伝えます。
character_set_results を設定することで、PHP がどのような種類のエンコードされたデータを取得する必要があるかを Mysql に伝えます。
character_set_connection を設定することで、PHP クエリ内のテキストに使用するエンコーディングを Mysql に指示します。
3. データベースに接続したら、データベース間で文字を送信するときに使用されるデフォルトの文字エンコーディングを設定します。
mysqli::set_charset() または mysqli::query('set names utf8') を使用して設定します。
「SET NAMES」の代わりに mysqli::set_charset(mysqli:set_charset) を使用してみてください
    $db = new mysqli('localhost','user','passwd','database_name');
  • $ db ->set_charset('utf8');


コードをコピーします
utf-8ではなくutf8であることに注意してください
(ここでの問題は、データベースとPHPがエンコーディングを統一していることです。しかし、そうでない場合、mysqli::set_charset() 関数を呼び出すと、データを読み取るときに文字化けが表示されます。なぜですか? ;
SETcharacter_set_results = utf8;
SETcharacter_set_connection = utf8;
)
4. HTML ページで使用される文字セット。

をmetaタグに設定コードをコピー
  • 5. phpテキストファイルで使用される文字セット。

Linux でファイルを開くには vim を使用できます。
:set encoding
と入力して、ファイルで使用されている文字セットを表示できます
コード化けがないことを確認するには、ファイル自体のエンコーディング、HTML、PHPで指定したエンコーディング、Mysqlのエンコーディング(character_set_client、character_set_results含む)を統一するように指示します。 mysqli:set_charset() 関数または「SET NAMES」も使用します。
「3」以降の質問に答えて、データベースリンク後の文字セットを設定した場合と設定しなかった場合の結果をテストするためにいくつかの例を書きました。テスト環境はUbuntu 12.04、MySQL 5.5、php 5.5.7。
結果は以下の通りです:
(1) データベーステーブルの文字セットはutf8です。セット名を使用しないとutf8
は正常に中国語を挿入して読み込むことができますが、mysqlでは文字化けが表示されます
(2) ) データベーステーブルの文字セットは utf8 です。中国語を正常に挿入および読み取るにはセット名 utf8 を使用します
(3) データベーステーブルの文字セットは utf8 ではありません。
mysql で表示して読み取るには疑問符です。
Zero Zero H5から選択されたPHPチュートリアル 上記は、PHP で MySQL データベースを読み込むときにコードが文字化けする場合の解決策を、関連する内容も含めて紹介しました。PHP チュートリアルに興味のある友人の役に立てば幸いです。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。