PHPでコードを書いていると、中国語の出力が文字化けしてしまうことがありますが、このようなPHPの出力の文字化けはどうすれば解決できるのでしょうか? PHP が文字化けを出力する場合、一般に 2 つの状況が考えられます。1 つはエンコード設定が間違っているため、もう 1 つは間違ったエンコードでファイルを開いて保存したためです。この記事では、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 ファイルの先頭に立つ必要もあります。このコードを追加します。
<?phpheader("content-type:text/html;charset=utf-8"); //设置编码?>
3 番目のタイプ、純粋な PHP ページでの中国語の文字化けの問題 (データは静的です)
PHP ページに文字化けがある場合は、次の場所に追加してください。ページの先頭 ここに次のコードを追加するだけです。
<?phpheader("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 を使用したいエンコードに置き換えるだけです。現在、GB2312 が主に使用されています中国の Web サイト開発では、UTF-8 の 2 つのエンコーディングが使用されます。
注意すべき点: データベース操作を実行する必要がある PHP プログラムの前に追加される mysql_query("set names 'coding'"); エンコーディングは、PHP エンコーディングと一致している必要があります。PHP エンコーディングが gb2312 の場合、 mysql エンコーディングは gb2312 です。utf-8 の場合、mysql エンコーディングは utf8 なので、データの挿入または取得時に文字化けが発生しません。
phpで中国語を出力すると文字化けする以上がPHP中国語出力の文字化けコードを解決するにはどうすればよいですか? PHP での中国語出力の文字化けに対する解決策の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。