ネットワーク プログラミングの専門家にとって、Web ページの文字化けは常に悩みの種です。私は PHP Web プログラミングの初心者です。私も勉強中にこの問題に遭遇しました。関連するリソースを検索してまとめました。 :
一般的な中国語エンコーディング: gb2312、gbk (前者の拡張)、これら 2 つのエンコーディングには国際的な汎用性がありません。UTF-8 は国際標準エンコーディングであり、一般的な Web ページのエンコーディングはこのエンコーディング方式を使用します。 ;
文字化けは、エンコード方法の不一致によって主に発生します。この可能性を引き起こす可能性のある主な不一致は 4 つあります:
1. ページ ファイルのエンコード方法( .html, .php など)
2. html.headで指定したブラウザのエンコード方法
3. MySqlデータベース送信のエンコード方法
4. Apache 文字セット
これら 4 つのエンコーディングは一般に統一する必要があり、UTF-8 に統一することがより適切です。次の 4 つの点に注意してください:
1. PlusEdit などの編集ではファイル エンコーディングが認識され、開いて保存した後もエンコーディングは変更されませんが、Visual Studio 2005 や Zend Studio などの開発ツールではエンコーディングが変更されません。ツールを使用します。環境設定で設定された文字セットが開かれて保存され、元のエンコーディングが変更される場合があります。
元は utf-8 かもしれませんが、zend studio -> ツール (優先エンコードは gb2312) を開いて保存すると gb2312 になり、文字化けが発生する可能性があります;
2 , < ;meta http-equiv="Content-Type" content="text/html; charset=utf-8">この文はブラウザに utf-8 エンコーディングでページを表示させることができますが、注意すべき点が 1 つあります。注: Apache の文字セットが GB2312 などの非 UTF-8 である可能性があり、この場合、ブラウザは最初にサーバーの文字セット エンコーディング (GB2312) を開くため、文字化けが発生する可能性があります。
したがって、一般的には次のように処理できます。 サーバーの文字セットをオフにします。 Apache AddDefaultCharset off このとき、ページの Head に文字セットが設定された状態でブラウジングが開かれます。
3. PHP は通常、Mysql データベースと対話します。この 2 つが相互に通信する場合、エンコーディングの問題も発生します。追加またはクエリに関係なく、通信のエンコーディング メソッドを指定する必要があります (通常はエンコーディングと一致しています)。 HeadにメソッドUTF-8を設定しないと、取り出したデータが非UTF-8でエンコードされてしまい、ページ上に表示する際に文字化けが発生するため、UTF-8でエンコードされた文字を非UTF経由でデータベースに送信します。 8 つの通信メソッドも失敗します。挿入エラーに遭遇しました。質問です。皆さんが同じ間違いを繰り返さないことを願っています O(∩_∩)O~) 通信メソッドを指定してください: mysql_query('set names utf8')、注意してくださいutf-8 ではないこと;
4. 通常、データベースを構築する場合、エンコーディングは関係ありませんが、変更後の SQL ステートメントの実行に問題が発生します。データを削除すると、文字セットが一致しないというエラーが報告されます。my.ini ファイルのエンコード方法を変更する必要はありません。変更後、Mysql は起動時に 1065 エラーが報告されます。
mysql クライアントプログラムをコマンドラインで追加して確認する際に文字化けが発生していなければ、データベースのエンコード方法に問題はありません。上記3つが原因となります。
推奨ビデオ チュートリアル: PHP ビデオ チュートリアル
以上がPHPページを閲覧すると文字化けが発生するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。