ホームページ php教程 PHP开发 PHPページのエンコード宣言方法(ヘッダーまたはメタ)の詳細説明

PHPページのエンコード宣言方法(ヘッダーまたはメタ)の詳細説明

Dec 13, 2016 pm 12:00 PM
PHPコーディング

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 銇俱仧銇

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)