ホームページ  >  記事  >  バックエンド開発  >  phpの中国語文字化けの解決策まとめ

phpの中国語文字化けの解決策まとめ

小云云
小云云オリジナル
2018-01-30 14:14:281363ブラウズ

多くの初心者の友人が 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(&#39;SET NAMES UTF8&#39;);
 //接下来的就是查出数据或者修改,增加
?>

使用している 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 であるため、データの挿入または取得時に文字化けが発生しません。

関連する推奨事項:

Ajax送信における中国語の文字化けコード問題の解決策

MySQLに保存されたデータの中国語の文字化けコード問題をPHPがどのように解決するか

mysqlデータベースの中国語の文字化けコード問題の詳細な説明

以上がphpの中国語文字化けの解決策まとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。