ホームページ > バックエンド開発 > PHPチュートリアル > さまざまな PHP アプリケーションにおけるコード化けの問題の解決策_PHP チュートリアル

さまざまな PHP アプリケーションにおけるコード化けの問題の解決策_PHP チュートリアル

WBOY
リリース: 2016-07-21 15:37:56
オリジナル
879 人が閲覧しました

1) タグを使用してページエンコーディングを設定します

このタグの目的は、クライアントのブラウザがページを表示するために使用する文字セットエンコーディングを宣言することです。xxx は GB2312、GBK、UTF-8 です (MySQL とは異なります。MySQL はUTF8)などでお待ちください。したがって、ほとんどのページはこのメソッドを使用して、このページを表示するときに使用するエンコーディングをブラウザーに指示し、エンコーディング エラーや文字化けを回避できます。しかし、場合によっては、この文がどの xxx であっても機能しないことがわかります。これについては後で説明します。

これは HTML 情報に属し、サーバーが HTML 情報をブラウザーに渡したことを示すだけの単なるステートメントであることに注意してください。

2) header("content-type:text/html; charset=xxx");

関数 header() は、括弧内の情報を http ヘッダーに送信することです。括弧内の内容が記事に記載されているとおりであれば、最初のラベルと比較してみると、文字が似ていることがわかります。ただし、違いは、この機能がある場合、ブラウザは常に要求された xxx エンコーディングを使用し、決して従わないことです。そのため、この機能は非常に便利です。なぜこれが起こっているのでしょうか? 次に、http ヘッダーと HTML 情報の違いについて説明する必要があります:

http ヘッダーは、http プロトコルを使用して HTML 情報をブラウザーに送信する前にサーバーによって送信される文字列です。タグはHTML情報に属しているため、header()で送信された内容が最初にブラウザに届きます。人気のポイントは、header()の優先度が高いことです(これを言えるかわかりませんが)。 PHP ページに header("content-type:text/html;charset=xxx") と header("content-type:text/html;charset=xxx") の両方がある場合、ブラウザは前者の http ヘッダーとヘッダーのみを認識します。メタではありません。もちろん、この関数はphpページ内でのみ使用できます。

また、前者は確実に動作するのに、後者は動作しない場合があるのはなぜでしょうか、という疑問も残ります。これが、次に Apache について話したい理由です。

3) AddDefaultCharset

Apache ルート ディレクトリの conf フォルダーには、Apache 設定ドキュメント全体 httpd.conf があります。

httpd.conf をテキスト エディタで開きます (バージョンが異なる場合があります) には、AddDefaultCharset xxx が含まれています。xxx はエンコーディング名です。このコード行の意味: サーバー全体の Web ページ ファイルの http ヘッダーの文字セットをデフォルトの xxx 文字セットに設定します。この行があることは、各ファイルにヘッダー行 ("content-type: text/html; charset=xxx") を追加することと同じです。これで、ブラウザが utf-8 に設定されているにもかかわらず常に gb2312 を使用する理由が理解できました。

Webページにheader("content-type:text/html; charset=xxx")がある場合、デフォルトの文字セットが設定した文字セットに変更されるので、この機能は常に役に立ちます。 AddDefaultCharset xxx の前に「#」を追加し、この文をコメントアウトし、ページに header("content-type...") が含まれていない場合は、メタ タグが有効になります。

上記の優先順位は以下のとおりです:

.. header("content-type:text/html; charset=xxx")

.. AddDefaultCharset xxx

..

Web プログラマーの場合、どのサーバーでも正しく表示でき、移植性が高いように、各ページにヘッダー ("content-type: text/html; charset=xxx") を追加することをお勧めします。

4) php.ini のdefault_charset 設定:

default_charset = "gb2312" in php.ini は、php のデフォルトの言語文字セットを定義します。通常、この行をコメント アウトし、必須要件とするのではなく、Web ページ ヘッダーの文字セットに基づいてブラウザが自動的に言語を選択できるようにすることをお勧めします。これにより、複数の言語の Web サービスを同じサーバー上で提供できます。

PHPでの中国語文字化けの解決策 mb_substr関数の応用
mysqlでの中国語文字化けの解決策集

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/321816.html技術記事 1) タグを使用してページのエンコーディングを設定します。このタグの目的は、クライアントのブラウザがページを表示するために使用する文字セット エンコーディングを宣言することです (MySQL とは異なります)。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート