php ヘッダー: PHP ページを utf エンコーディングまたは GBK エンコーディングとして定義します
php ページを utf エンコーディングとして定義します
header("Content-type: text/html; charset=utf-8");
php ページは gbk でエンコードされています
header("Content-type: text/html;
charset=gb2312");
PHP ページは big5 でエンコードされます
header("Content-type: text/html; charset=big5");
通常、上記のコードは PHP ページのホームページに配置されます
PHP ページのエンコーディングを実装するためのヘッダーとメタの使用の違い
1. ページのエンコーディング
1. ラベル設定ページのエンコーディング
このタグの目的は、クライアントのブラウザがページを表示するために使用する文字セット エンコーディングを宣言することです。xxx は GB2312、GBK、UTF-8 です (MySQL とは異なります)。
UTF8)など。したがって、ほとんどのページはこのメソッドを使用して、このページを表示するときに使用するエンコーディングをブラウザーに指示し、エンコーディング エラーや文字化けを回避できます。でも時々そうします
この文は、xxx の種類に関係なく、常に同じエンコーディングを使用することがわかりました。これについては後で説明します。
は HTML 情報に属し、サーバーが HTML 情報をブラウザーに渡したことを示す単なるステートメントであることに注意してください。
2. header("content-type:text/html; charset=xxx");
関数 header() は、括弧内の情報を http ヘッダーに送信します。
括弧内の内容が記事に記載されている通りであれば、基本的にはタグと比べてみると文字が似ていることがわかります。しかし、違うのは、この段落があるかどうかです。
この機能を使用すると、ブラウザは常に要求した xxx エンコードを使用し、従わないことはないため、この機能は非常に便利です。なぜそうなるのでしょうか?次に、HTTPS ヘッダーと HTML 情報の違いについて説明する必要があります。
https ヘッダーは、HTTP プロトコルを使用して HTML 情報をブラウザーに送信する前にサーバーによって送信される文字列です。
metaタグはhtml情報に属するため、header()で送信した内容が先にブラウザに届きますが、metaよりheader()の方が優先される点が人気です(あり得るかは分かりませんが)。
そんなことは言えません)。 header("content-type:text/html; charset=xxx") と の場合、ブラウザは以前の http ヘッダーのみを認識し、メタは認識しません。もちろん、この関数は PHP ページでのみ使用できます。
疑問も残ります。前者は確実に機能するのに、後者は機能しない場合があるのはなぜですか?これが、次に Apache について話したい理由です。
3.
Apache ルートディレクトリの AddDefaultCharset
conf
このフォルダーには、Apache 構成ドキュメント全体 httpd.conf があります。
テキストエディタで httpd.conf を開き、708 行目 (バージョンによって異なる場合があります) に AddDefaultCharset が含まれています
xxx、xxx はエンコーディング名です。このコード行の意味: サーバー全体の Web ページ ファイルの https ヘッダーの文字セットをデフォルトの xxx 文字セットに設定します。この行があることは、各ファイルを与えることと同じです。
header("content-type:text/html;
charset=xxx")。メタ設定が utf-8 であるにもかかわらず、ブラウザが常に gb2312 を使用する理由がわかりました。
header("content-type:text/html;
charset=xxx") と指定すると、デフォルトの文字セットが設定した文字セットに変更されるため、この関数は常に役立ちます。
xxx の前に「#」を追加し、この文をコメントアウトし、ページにヘッダー (「content-type...」) が含まれていない場合は、メタ タグが有効になります。
まとめ:
整理しましょう
header("content-type:text/html; charset=xxx")
AddDefaultCharset xxx
Web プログラマーの場合は、header("content-type:text/html;
charset=xxx") を指定することで、どのサーバーでも正しく表示でき、移植性が高くなります。
文については、AddDefaultCharset
xxx、注釈を付けるかどうかは意見の問題です。とりあえずコメントアウトしましたが、ページを書くときにサーバー上で正常に表示されるようにheader()も書く必要があります。
2. データベースのエンコーディング
データベースにクエリを実行する前に、PHP プログラムはまず mysql_query(“SET
NAMES xxxx”); ここで、xxxx は Web ページのエンコーディング (charset=xxxx) である場合、Web ページに charset=utf8 が含まれています。
charset=gb2312、xxxx=gb2312 ほとんどすべての WEB プログラムには、データベースに接続するための共通のコードがあり、このファイルに次のコードを追加します。
mysql_query("set names") がうまくいきます。
SET NAMES クライアントから送信された SQL ステートメントで使用される文字セットを示します。したがって、SET
NAMES 'utf-8' ステートメントは、サーバーに「このクライアントからの将来の情報では文字セット utf-8 が使用される」ことを伝えます。また、サーバーがクライアントに送り返す結果の文字セットも指定します。 (たとえば、
SELECT ステートメント。列の値に使用される文字セットを示します。 )
PHP ページのコーディングを統一する
MySQL データベースのコーディング、HTML ページのコーディング、PHP または HTML ファイル自体のコーディングはすべて一貫している必要があります。
1. MySQL データベースのエンコーディング: データベースの作成時にエンコーディングを指定します (gbk_chinese_ci など)。データ テーブル、フィールドの作成時、データの挿入時にエンコーディングを指定しないでください。データベースのエンコーディングが自動的に継承されます。
データベースに接続するときにもエンコーディングがあります。データベースに接続した後、
mysql_query('SET NAMES) を実行できます。
gbk');//gbk を utf8 などのエンコーディングに置き換えます。
2. HTML ページのエンコーディングは、次の行の設定を参照します:
3. PHP 銇俱仧銇