PHP 開発者ならほとんどの人が経験する文字化けの問題ですが、ここでは主に PHP MySQL データベース接続時の文字化けの解決方法を紹介します。
MYSQL データベースで UTF-8 エンコーディングを使用する場合の問題
1. phpmyadmin を使用してデータベースとデータ テーブルを作成します
データベースを作成するときは、「組織」を設定してください「 utf8_general_ci」に変更するか、ステートメントを実行します:
CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
データ テーブルを作成するとき: フィールドに中国語が格納されている場合は、「組織」を「utf8_general_ci」に設定する必要があります。フィールドに英語または数字が格納されている場合。 、デフォルトで問題ありません。
対応する SQL ステートメント (例:
CREATE TABLE `test` ( `id` INT NOT NULL , `name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = MYISAM ;
2) PHP を使用してデータベースの読み取りと書き込みを行います
データベースに接続した後、
$connection = mysqli_connect($host_name, $host_user, $host_pass);
Join:
mysqli_query("set character set 'utf8'");//读库 mysqli_query("set names 'utf8'");//写库
MYSQL データベースは通常どおり読み書きできます。
appserv-win32-2.5.10 を使用して作成された環境は、このパッケージのインストール時にデフォルトの utf8 エンコーディングを使用します。
データベース接続ファイルを作成するときは、次のように記述します:
$conn = mysqli_connect("$host","$user","$password"); mysqli_query("SET NAMES 'UTF8'"); mysqli_select_db("$database",$conn);
次に、ページを作成するときに、次の文に注意してください:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
このように、中国語入力に関係なく、データベースへの書き込み、またはページの表示はすべて正常です。
DW CS4 バージョンでは、デフォルトで utf8 ページも生成されます。
同様に、最初にデータベース接続ファイルを
mysqli_query("SET NAMES 'GBK'");
のように記述すると、ページも次のようになります:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
上記の内容は参考用です。
推奨チュートリアル: PHP ビデオ チュートリアル
以上がphp が文字化けした文字をデータベースに書き込むの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。