PHP によってデータベースに書き込まれる文字化けする中国語の解決策: 1. データベースを作成し、「utf8_general_ci」エンコーディングを設定します。 2. PHP を使用してデータベースの読み取りと書き込みを行い、「mysql_query("set names 'utf8'");" 以上です。
この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター
方法php書き込みを解決する データベースの中国語文字化けの問題?
PHPでデータベースに書き込む中国語文字化けの問題
#変換の問題PHP ページを UTF-8 エンコードに変換します
1。コードの先頭に行を追加します:
header("Content-Type: text/html;charset=utf-8");
2.PHP ファイルのエンコードの問題
エディタのメニューをクリックします。 [ファイル] -> [名前を付けて保存] をクリックすると、現在のファイルのエンコーディングが表示されます。ファイル エンコーディングが UTF-8、
であることを確認します。ANSI の場合は、エンコーディングを UTF-8 に変更する必要があります。
3. PHP ファイル ヘッダーの BOM の問題:
PHP ファイルには BOM タグがあってはなりません
そうしないと、セッションは使用できなくなり、同様のプロンプトが表示されます:
警告: session_start() [ function.session-start]: セッション キャッシュ リミッターを送信できません - ヘッダーはすでに送信されています
これは、session_start() を実行するとページ全体に出力ができないためですが、前の PHP ページに BOM タグが存在する場合、
PHP はこの BOM タグを出力とみなしたため、エラーが発生しました。
したがって、PHP ページで BOM タグを削除する必要があります。
この BOM タグを削除する方法:
1. Dreamweaver でファイルを開いて再保存できます。つまり、BOM タグを削除できます。 !
2. EditPlus でファイルを開き、メニューの「環境設定」->「ファイル」->「UTF-8 ID」で、「署名を常に削除する」に設定します。ファイルを保存します。つまり、BOM ラベルを削除できます。
4. PHP がファイルを添付ファイルとして保存するときの UTF-8 エンコードの問題:
PHP がファイルを添付ファイルとして保存するとき、ファイル名は GB2312 でエンコードされている必要があります。ファイル名、文字化けが表示されます:
PHP 自体が UTF-8 エンコード形式のファイルの場合、
ファイル名変数を UTF-8 から GB2312 に変換する必要があります:
iconv("UTF-8", "GB2312", "$filename");
function utf8_substr($str,$len) { for($i=0;$i<$len;$i++) { $temp_str=substr($str,0,1); if(ord($temp_str) > 127){ $i++; if($i<$len){ $new_str[]=substr($str,0,3); $str=substr($str,3); } }else { $new_str[]=substr($str,0,1); $str=substr($str,1); } } return join($new_str); }
1. phpmyadmin を使用してデータベースを作成し、データ テーブル
データベースを作成するときに、「 Set "Organization" を "utf8_general_ci" に変更するか、次のステートメントを実行してください:CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE 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 ;
データベースに接続した後:
$connection = mysql_connect($host_name, $host_user, $host_pass);
次の 2 行を追加します。
mysql_query("set character set 'utf8'");//读库 mysql_query("set names 'utf8'");//写库 //其实读写都可以只加入 mysql_query("set names 'utf8'");
MYSQL データベースは通常どおり読み書きできます。
appserv-win32-2.5.10 を使用して作成された環境では、このパッケージのインストール時にデフォルトの utf8 エンコーディングが使用されます。
データベース接続ファイルを記述するときは、次のように記述します。$conn = mysql_connect("$host","$user","$password"); mysql_query("SET NAMES 'UTF8'"); mysql_select_db("$database",$conn);
このようにして、データベースへの中国語入力やページ表示に関係なく、すべてが正常になります。
DW CS4 バージョンでは、デフォルトで utf8 ページも生成されます。
同様に、最初にデータベース接続ファイルを次のように記述すると: mysql_query("SET NAMES 'GBK'");
ページもそれに応じて変更されるはずです:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
以上がPHPでデータベースに書き込まれる中国語が文字化けする問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。