ホームページ  >  記事  >  バックエンド開発  >  PHPページの中国語コードが文字化けする

PHPページの中国語コードが文字化けする

藏色散人
藏色散人オリジナル
2019-09-17 10:23:136551ブラウズ

PHPページの中国語コードが文字化けする

PHP ページに中国語の文字化けがある場合はどうすればよいですか?

最初にページを開いて文字化けした PHP ファイルを表示します。

次に、PHP ファイルの先頭に

header('Content-type:text/html;charset=utf-8');

と記述して中国語を表示します。

推奨マニュアル: php完全独習マニュアル

関連紹介:

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

2. ページ宣言のエンコーディング: HTML コード HEAD では、e8b088d6bcb59096041b1c501b34c57e を使用してそれを伝えることができます。ブラウザ サーバー Web ページにはどのようなエンコーディングが使用されていますか? 現在、XXX は中国の Web サイト開発で主に GB2312 と UTF-8 を使用しています。

3. データベース接続エンコーディング: データベース操作を実行するときに使用されるエンコーディングを指します。データベースからデータを送信するときは、データベース自体のエンコーディングと混同しないように注意する必要があります。たとえば、MySQL 内のデフォルトのエンコーディングは latin1 エンコーディングです。これは、Mysql がデータを latin1 エンコーディングで保存することを意味します。Mysql に送信されるデータ他のエンコーディングでは、latin1.エンコーディングに変換されます。さまざまなエンコーディングのほとんどは ASCII と互換性があるため、英語の記号は表示されず、中国語の文字はうまくいきません。ここでは、一般的なエラー状況と解決策をいくつか示します:

1. データベースは UTF8 エンコーディングを使用しています、ページ宣言のエンコーディングは GB2312 です。これが文字化けの最も一般的な原因です。このとき、PHP スクリプト内の直接 SELECT データから出力される PHP ページが文字化けします。次の値を使用する必要があります:

mysql_query("SET NAMES GBK"); クエリを実行する前に、MYSQL 接続エンコーディングを設定し、ページがエンコーディングを宣言していることを確認します。これは、ここで設定された接続エンコーディングと一致しています (GBK は GB2312 の拡張です)。

mysql_query("SET NAMES UTF8"); これは、一般的に使用される UTF-8 ではなく UTF8 であることに注意してください。ページ宣言のエンコードが内部コードと一致している場合は、データベースのエンコーディングを使用する場合、接続エンコーディングを設定する必要はありません。

注: 実際には、MYSQL のデータ入出力は上記よりも複雑です。MYSQL 構成ファイル my.2 のデフォルトエンコーディングは ini で定義され、つまり [client] のデフォルト文字セットと [mysqld] のデフォルト文字セットで、デフォルトでクライアント接続とデータベースの内部で使用されるエンコーディングをそれぞれ設定します。実際には、MYSQL クライアントがサーバーに接続するときのコマンド ライン パラメーターcharacter_set_client であり、デフォルトのエンコーディングを使用する代わりに、受信したクライアント データのエンコーディングを MYSQL サーバーに伝えます。ファイル自体のエンコーディングに問題があります。エンコーディングが一貫していない場合、ページの作成時にアーティストがブラウザに表示するのは文字化けしたコードになるため、これはめったに起こりません。多くの場合、公開後に小さなバグを修正し、ページを開いたことが原因で発生します。間違ったエンコードを使用して保存しました。または、CuteFTP などの FTP ソフトウェアを使用してオンラインでファイルを直接変更すると、ソフトウェアのエンコード設定が正しくないため、間違ったエンコードが変換されます。

3. 仮想ホストをレンタルしている友人の中には、上記の 3 つのエンコーディングが正しく設定されているにもかかわらず、依然として PHP ページが文字化けしている人がいます。たとえば、Web ページが GB2312 でエンコードされている場合、IE などのブラウザで開いたときに常に UTF-8 として認識されます。Web ページの HEAD にはすでに GB2312 と記載されています。ブラウザのエンコードを手動で GB2312 に変更した後、 、ページは正常に表示されます。その理由は、サーバー Apache がサーバーのグローバルなデフォルト エンコーディングを設定し、httpd.conf に AddDefaultCharset UTF-8 を追加するためです。このとき、サーバーはまずHTTPヘッダーをブラウザーに送信しますが、その優先度はページ内で宣言されているエンコーディングよりも高いため、当然ブラウザーは誤認識してしまいます。解決策は 2 つあり、管理者は独自の仮想マシンの構成ファイルに AddDefaultCharset GB2312 を追加してグローバル構成をオーバーライドするか、独自のディレクトリの .htaccess で構成する必要があります。

おすすめ関連記事:

1.
PHP の中国語の文字化けコードを解決するにはどうすればよいですか? PHP における中国語の文字化けの 3 つの状況の紹介
#関連ビデオの推奨事項:##1.Dugu Jiijian(4)_PHP ビデオ チュートリアル

以上がPHPページの中国語コードが文字化けするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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