ホームページ >バックエンド開発 >PHPの問題 >php が文字化けした文字をデータベースに書き込む

php が文字化けした文字をデータベースに書き込む

王林
王林オリジナル
2019-09-17 13:05:483289ブラウズ

php が文字化けした文字をデータベースに書き込む

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 &#39;GBK&#39;");

のように記述すると、ページも次のようになります:

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

上記の内容は参考用です。

推奨チュートリアル: PHP ビデオ チュートリアル

以上がphp が文字化けした文字をデータベースに書き込むの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。