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

PHP_PHP チュートリアルでさまざまなアプリケーションのコード化けの問題を解決する

WBOY
WBOYオリジナル
2016-07-13 10:55:01759ブラウズ

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

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

このタグの目的は、クライアントのブラウザがページを表示するために使用する文字セットエンコーディングを宣言することです。xxx には、GB2312、GBK、UTF-8 (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 を開きます。行 708 (バージョンが異なる場合があります) には、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 の前に「#」を追加し、この文をコメントアウトし、ページにヘッダー (「content-type...」) が含まれていない場合は、メタ タグが有効になります。

上記は優先順位の順にリストされています:

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

..AddDefaultCharset xxx

..

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

4) php.iniのdefault_charset設定:

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

www.bkjia.com本当http://www.bkjia.com/PHPjc/632289.html技術記事 PHP チュートリアルでのさまざまなアプリケーションでの文字化けコードの問題の解決 1) タグを使用してページ エンコーディングを設定します。このタグの機能は、クライアントのブラウザーがページを表示するために使用する文字セット エンコーディングを宣言することです。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。