多くの初心者の友人が 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 コードが gb2312 の場合、mysql コードと一致している必要があります。 UTF-8 の場合、MySQL エンコーディングは UTF8 であるため、データの挿入または取得時に文字化けが発生しません。
関連する推奨事項:
MySQLに保存されたデータの中国語の文字化けコード問題をPHPがどのように解決するか
mysqlデータベースの中国語の文字化けコード問題の詳細な説明
以上がphpの中国語文字化けの解決策まとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。