ホームページ  >  記事  >  バックエンド開発  >  PHP出力で中国語が文字化けする問題を解決するにはどうすればよいですか?

PHP出力で中国語が文字化けする問題を解決するにはどうすればよいですか?

青灯夜游
青灯夜游オリジナル
2020-11-06 17:17:365674ブラウズ

解決策: 1. HTML と PHP が混在しているページの場合は、メタ タグまたは header() 関数を使用してページのエンコーディングを統一する必要があります。2. 純粋な PHP の静的ページの場合は、header() 関数を使用します。 ) エンコーディングを「utf -8」に設定する関数; 3. mysql_query() を使用して、PHP 接続のエンコーディングを mysql に設定します。

PHP出力で中国語が文字化けする問題を解決するにはどうすればよいですか?

一般的に、文字化けが発生する原因は 2 つあります。1 つ目は、エンコード (文字セット) の設定が正しくないため、ブラウザーが間違ったエンコーディングで解析します。その結果、画面が乱雑な「天国の書」でいっぱいになります。次に、ファイルが間違ったエンコーディングで開かれ、保存されます。たとえば、テキスト ファイルは元々 GB2312 でエンコードされていましたが、 UTF-8 エンコードで開かれて保存されました。上記の文字化けコードの問題を解決するには、まず開発のどの側面にエンコーディングが関係しているかを知る必要があります:

1. ファイル エンコーディング: ページ ファイル (.html、.php など) のエンコーディングを指します。それ自体は保存されます。 Notepad と Dreamweaver では、ページを開くときにファイルのエンコーディングが自動的に認識されるため、問題は少なくなります。ただし、ZendStudio はエンコードを自動的に認識しません。環境設定の設定に従って特定のエンコードでファイルを開くだけです。作業中に誤って間違ったエンコードでファイルを開くと、保存した瞬間に文字化けが表示されます。変更を加えた後です。

2. ページ宣言のエンコーディング: HTML コード HEAD では、 (このWeb ページで使用されているエンコーディングをブラウザーに伝えるために、

XXX の前に記述する必要があります。そうしないとページが空白になります (IE PHP のみ))。現在、主に GB2312 と UTF が使用されています。中国の Web サイト開発 -8 2 つのエンコーディング.

3. データベース接続エンコーディング: データベース操作を実行するときにデータベースにデータを送信するためにどのエンコーディングが使用されるかを指します。データベース自体のエンコーディング (MySQL 内部など) デフォルトは latin1 エンコーディングであり、Mysql はデータを latin1 エンコーディングで保存し、他のエンコーディングで Mysql に送信されたデータは latin1 エンコーディングに変換されることを意味します。 WEB開発ではエンコードが関係しますが、文字化けの原因は上記3つのエンコード設定が一致していないことがわかりますが、各種エンコードのほとんどはASCIIと互換性があるため、英語の記号は表示されず、中国語の文字は不運になります。

#php で中国語の文字化けを出力する場合の解決策

##HTML と PHP が混在するページに対する最初の解決策

方法 1: タグを使用する

PHP コードが HTML に埋め込まれている場合、

を使用して中国語の文字化けの問題を解決できます

<pre class="brush:html;toolbar:false">&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset=&quot;UTF-8&quot;&gt; &lt;title&gt;php输出中文乱码&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;div class=&quot;demo&quot;&gt; &lt;?php echo &quot;php中文网!&quot;; ?&gt; &lt;/div&gt; &lt;/body&gt; &lt;/html&gt;</pre>方法 2: header() 関数を使用する

HTML と PHP を混合する方法は、最初の方法で説明した操作に従うことに加えて、次のことも行います。これを PHP ファイルの先頭に追加する必要があります。 文コード:

<?php
header("content-type:text/html;charset=utf-8");         //设置编码
?>

2 番目のタイプ、純粋な PHP ページの中国語文字化けの問題 (データは静的です)

If PHP ページの文字化けがある場合は、ページの先頭に次のコードを追加してください。

<?php
header("content-type:text/html;charset=utf-8");         //设置编码
?>


3 番目のタイプ、PHP Mysql 中国語文字化け問題

上記の 3 つの操作に加えて、データのクエリ/変更/追加の前にデータベース エンコーディングも追加する必要があります。さらに、ここでの UTF8 は以前のものとは異なることに注意してください。

 <?php
    mysql_query(&#39;SET NAMES UTF8&#39;);
    //接下来的就是查出数据或者修改,增加
?>
MySQL バージョン 4.1 以降を使用している場合は、次のようにリンク データベース操作の後に文字エンコーディングを設定できます

PHP出力で中国語が文字化けする問題を解決するにはどうすればよいですか?注:

データベース操作を実行する必要がある PHP プログラムの前に追加される mysql_query("set names 'coding'"); コードは、 PHP コーディング。PHP コーディングが gb2312 の場合、mysql エンコーディングは gb2312 です。utf-8 の場合、mysql エンコーディングは utf8 です。これにより、データの挿入または取得時に文字化けが発生しません。

プログラミング関連の知識について詳しくは、

プログラミング教育
をご覧ください。 !

以上がPHP出力で中国語が文字化けする問題を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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