ホームページ > バックエンド開発 > PHPチュートリアル > PHP ヘッダーは、文字化けしたコードの問題やその他の文字化けしたコードの問題を解決します。

PHP ヘッダーは、文字化けしたコードの問題やその他の文字化けしたコードの問題を解決します。

WBOY
リリース: 2016-08-08 09:19:16
オリジナル
1098 人が閲覧しました

http://www.jb51.net/article/22501.htm から転載

php ページを UTF エンコードまたは GBK エンコードとして定義するための php ヘッダー

phpページはutfエンコードされています
header("Content-type: text/html; charset=utf-8");
phpページはgbkエンコードされています
header("Content-type: text/html; charset=gb2312"); PHP ページは big5 でエンコードされます ページのホームページ
PHP ページのエンコードを実装するためのヘッダーまたはメタの使用の違い 1. ページのエンコード

1 タグ設定ページのエンコーディングを使用します
このタグの機能は、クライアントのブラウザが表示するために使用する文字セット エンコーディングを宣言することです。 page.xxx は GB2312、GBK、UTF-8 (MySQL とは異なります。MySQL は UTF8) などです。したがって、ほとんどのページはこのメソッドを使用して、このページを表示するときに使用するエンコーディングをブラウザーに指示できます。エンコードエラーが発生し、文字化けが発生します。ただし、この文は、常に同じエンコードを使用します。
は HTML 情報であり、HTML 情報がブラウザに送信されたことを示すものです。 2. ");

この関数 header() の機能は、括弧内の情報を送信することです。http ヘッダーに移動します。
括弧内の内容が記事で述べたとおりであれば、関数は基本的に タグと比較すると、文字が似ていることがわかりますが、この段落関数がある場合、ブラウザは常に xxx エンコーディングを使用することになります。次に、HTTPS ヘッダーと HTML 情報の違いについて説明します。
https ヘッダーは、HTML 情報をブラウザーに送信する前にサーバーによって送信される文字列です。 metaタグはHTML情報に属しているため、header()で送信されたコンテンツが最初にブラウザに届きます。これを言えるかどうかはわかります)。PHP ページを追加すると、header("content-type:text/html; charset=xxx") と の場合、ブラウザは前者の http ヘッダーのみを認識し、メタは認識しません。もちろん、この関数は PHP ページでのみ使用できます。
なぜ前者が認識されるのかという疑問もあります。確かに機能しますが、後者は機能しないことがあります。これが、次に Apache について説明する理由です。

Apache ルート ディレクトリの conf フォルダーには、Apache 設定全体が含まれています。
httpd.conf をテキスト エディタで開きます。行 708 (バージョンが異なる場合があります) には、AddDefaultCharset xxx が含まれています。このコード行の意味は次のとおりです。サーバー全体内の Web ページ ファイルの文字セットは、デフォルトの xxx 文字セットです。この行を使用すると、各ファイルに header("content-type:text/html;") を追加するのと同じになります。 charset=xxx")。 これで、メタ設定が utf-8 であるにもかかわらず、ブラウザが常に gb2312 を使用する理由がわかります。
header("content-type:text/html; charset=xxx ") がある場合は、変更しますデフォルトの文字セットは設定した文字セットに適用されるため、この関数は常に役立ちます。AddDefaultCharset xxx の前に「#」を追加すると、この文をコメントアウトできます。ページには header("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 ページの場合、xxxx =utf8、Web ページの 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 または HTML ファイル自体のエンコーディング: editplus を使用して php ファイルまたは HTML ファイルを開きます。データベースとページのエンコーディングが gbk の場合、ここでのエンコーディングは ansi を選択します。が utf-8 の場合は、こちらも utf-8 を選択してください
4. データベースとページのエンコードが gbk の場合、データは utf-8 でエンコードされていることに注意してください。
iconv('utf-8', 'gbk', $content); 5. PHP プログラムで、PHP ソース プログラムのエンコーディングを指定する行を追加できます。 header('Content-type: text/html; charset=gbk');
以上、コード文字化け問題を解決するためのPHPヘッダーやその他のコード文字化け問題を紹介しましたが、PHPチュートリアルに興味のある友人の参考になれば幸いです。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート