phpがmysqlデータベースを読み込む際のコード化けの解決策について、mysqlのコード化け
phpがmysqlデータベースを読み込む際のコード化けの解決策について
PHP が mysql を読み取るとき、次の場所に文字セットが関係します。
1. データベーステーブル作成時にデータベーステーブルの文字セットを指定します。たとえば
- テーブルテーブル名を作成する
- (
- id int not null auto_increment,
- タイトル varchar(20) が null ではありません、
- 主キー ('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) を使用してみてください