中国語の文字化けが表示されるのはなぜですか?
多くの初心者の友人が PHP を学習すると、プログラム内の中国語が出力時に文字化けすることに気づきます。では、なぜこのような文字化けの状況が発生するのでしょうか。一般に、文字化けが発生する原因は 2 つあります。1 つは、間違ったエンコード (文字セット) 設定が原因で、ブラウザが間違ったエンコードで解析し、画面が乱雑な「天国の本」でいっぱいになることです。 2 つ目は、ファイルが間違ったエンコードで開いて保存した場合、たとえば、元々 GB2312 でエンコードされていたテキスト ファイルを UTF-8 エンコードで開いて保存した場合、文字化けが発生します。この記事ではPHPの文字化け問題を解決する方法を紹介します。
コード化けの状況を次のタイプに分類します。必要に応じて、次の状況を参照して、コード化けの問題を的を絞った方法で解決できます
最初の方法: HTML の中国語のコード化け問題を解決します
HTML ファイルが文字化けしている場合は、head タグに UTF8 エンコード (国際エンコード) を追加できます。UTF-8 は国を問わないエンコードです。つまり、どの言語にも依存せず、どの言語でも使用できます。 。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
例
現在のHTML5ファイル、エンコーディングの設定は次のように簡単です
2番目、HTMLとPHPの混合ページソリューション
HTMLとPHPの使用方法混合コンパイルの場合、最初の方法で説明した操作に従うことに加えて、次のコードを PHP ファイルの先頭に追加する必要もあります:
<?php header("content-type:text/html;charset=utf-8"); //设置编码 ?>
3 番目、純粋な PHP ページの中国語文字化けの問題 (データは静的)
PHP ページが文字化けしている場合は、ページの先頭に次のコードを追加してください。
<?php header("content-type:text/html;charset=utf-8"); //设置编码 ?>
4 つ目、PHP+Mysql 中国語文字化け問題
3 つ目で説明した操作に従うことに加えて、データのクエリ/変更/追加の前にデータベース エンコーディングを追加する必要もあります。さらに、ここでの UTF8 は以前の UTF8 とは異なり、中央に水平線がないことに注意してください。
<?php mysql_query('SET NAMES UTF8'); //接下来的就是查出数据或者修改,增加 ?
MySQL バージョン 4.1 以降を使用している場合は、以下のようにリンク データベース操作の後に文字エンコーディングを設定できます
UTF-8 エンコーディングは、エンコーディングの 1 つにすぎません。 UTF-8 エンコーディングを使用したい場合は、他のエンコーディングを使用することもできます。UTF-8 を使用したいエンコーディングに置き換えるだけです。 現在、中国の Web サイト開発では主に GB2312 と UTF-8 が使用されています。
注意すべき点は、データベース操作を実行する必要がある PHP プログラムの前に追加される mysql_query("set names 'coding'"); エンコーディングが PHP エンコーディングと一致している必要があることです。PHP エンコーディングが gb2312 の場合、mysqlエンコードが gb2312 の場合、mysql エンコードは utf8 なので、データの挿入または取得時に文字化けが発生しません
【関連する推奨事項】
1. php.cn オリジナル html5 ビデオチュートリアル 》
2. PHP ビデオチュートリアル:「php.cn Dugu Jiijian (4) - PHP ビデオチュートリアル」
3.以上がPHPで中国語が文字化けする問題を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。