中国語の文字化けはなぜ発生するのですか?
多くの初心者の友人がPHPを学習すると、プログラム内の中国語が出力時に文字化けしてしまうことに気づきますが、一般的にこのような文字化けが発生するのはなぜでしょうか?理由は 2 つあります。1 つは、間違ったエンコード (文字セット) 設定が原因で、ブラウザが間違ったエンコードで解析し、画面いっぱいに乱雑な「天国の本」が表示されることです。2 つ目は、ファイルが間違った状態で開かれたことです。たとえば、最初は GB2312 でエンコードされていたテキスト ファイルを開いて UTF-8 エンコードで保存すると、文字化けが発生します。この記事ではPHPの文字化け問題を解決する方法を紹介します。
コード化けの状況を次のタイプに分類します。必要に応じて、次の状況を参照して、コード化けの問題を的を絞った方法で解決できます
最初の方法: HTML で中国語のコード化け問題を解決する
場合HTML ファイルでコードが文字化けする問題がある場合は、head タグに UTF8 エンコード (国際エンコード) を追加できます。UTF-8 は国を問わないエンコードです。つまり、言語に依存せず、どの言語でも使用できます。言語。
例
現在の HTML5 ファイル、エンコーディングの設定はより簡単です。以下:
2 番目、HTML と PHP の混合ページ ソリューション
HTML と PHP を混合する方法は、最初の方法で説明した操作に従うことに加えて、PHP ファイルに次のコードを追加する必要もあります。先頭のコード:
中国語の 3 番目の純粋な PHP ページ 文字化け問題 (データは静的です)
PHP ページのコードが文字化けしている場合は、次のコードをページの先頭に追加してください。
4つ目は、PHP+Mysqlの中国語文字化けの問題です
データのクエリ、変更、追加の前に、前述の 3 つの操作に加えて、データベース エンコーディングも追加する必要があります。さらに、ここでの UTF8 は以前の UTF8 とは異なり、中央に水平線がないことに注意してください。
使用している MySQL バージョンが 4.1 以降の場合は、次のリンクを実行できます。操作後、次のように文字エンコーディングを設定します。
UTF-8 エンコーディングは 1 つのエンコーディングにすぎません。utf-8 エンコーディングを使用したくない場合は、他のエンコーディングを使用することもできます。 UTF-8 を任意のエンコーディングに置き換えるだけです。現在、中国の Web サイト開発では GB2312 と UTF-8 が主に使用されています。注意すべき点は、データベース操作を実行する必要がある PHP プログラムの前に追加される mysql_query (" set names 'coding'"); エンコーディングが PHP エンコーディングと一致している必要があるということです (PHP エンコーディングが gb2312 の場合)。エンコーディングが gb2312 の場合、mysql エンコーディングは utf8 なので、データの挿入または取得時に文字化けが発生しません