ホームページ >バックエンド開発 >PHPチュートリアル >Windows Phone 8 で PHP を使用するさまざまなアプリケーションで発生するコード文字化けの問題の解決策
1) タグを使用してページのエンコーディングを設定します。このタグの目的は、クライアントのブラウザがページの表示に使用する文字セット エンコーディング (xxx は GB2312、GBK、UTF-8 とは異なります) を宣言することです。 )など。したがって、ほとんどのページはこのメソッドを使用して、このページを表示するときに使用するエンコーディングをブラウザーに指示し、エンコーディング エラーや文字化けを回避できます。しかし、場合によっては、この文がどの 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 設定: php.ini の
default_charset = "gb2312" は、php のデフォルトの言語文字セットを定義します。通常、この行をコメント アウトし、必須要件とするのではなく、Web ページ ヘッダーの文字セットに基づいてブラウザが自動的に言語を選択できるようにすることをお勧めします。これにより、複数の言語の Web サービスを同じサーバー上で提供できます。
PHPの中国語文字化け問題を解決するmb_substr関数の応用
mysqlの中国語文字化けの解決策集
以上、Windows Phone 8 の PHP アプリケーションの内容も含め、さまざまなアプリケーションの文字化け問題の解決策を紹介しましたので、PHP チュートリアルに興味のある友人の参考になれば幸いです。