Apache php の文字化けコードの解決策: まず、「php.ini」内のコードをコメント アウトし、次にホーム ディレクトリの言語を「AddDefaultCharset utf-8」に変更し、次に必要なフォルダーのエンコード方法を変更します。最後にApacheを再起動するだけです。
#PHP 表示の文字化けと Apache の内部エンコードの問題の解決策
エンコードの問題
PHPのデフォルトエンコードはutf-8ですが、テスト中はhtmlコードのメタタグを書かない都合上、文字化けは発生しませんE:\OpenStudy\www\CSphpそして私がダウンロードしたヘルプドキュメント 電子データの HTML バージョンには gb2312 の設定が必要です
E:\OpenStudy\www\Electronic Booksサーバーの設定を開始するとき、PHP は誰もが推奨する utf-8 エンコード方式を使用します
[php.ini] default_charset = "UTF-8"サーバー ルート ディレクトリ:
E:\OpenStudy\www参照すべき関連情報
AddDefaultCharset 指令 说 明 当应答内容是text/plain或text/html时,在HTTP应答头中加入的默认字符集 语 法 AddDefaultCharset On|Off|charset 默认值 AddDefaultCharset Off 作用域 server config, virtual host, directory, .htaccess 覆盖项 FileInfo 状 态 核心(C) 模 块 core応答コンテンツが text/plain または text/html である場合に限り、このコマンドはHTTP 応答ヘッダーのデフォルト値の文字セット。理論的には、これはドキュメント本文の e8e496c15ba93d81f6ea4fe5f55a2244 タグで指定された文字セットをオーバーライドしますが、実際の動作は通常、ユーザーのブラウザ設定によって異なります。 AddDefaultCharset Off は、この機能を無効にします。 AddDefaultCharset On は、Apache の内部デフォルト文字セット、iso-8859-1 を有効にします。 IANA 登録文字セット名の 1 つから別の文字セットを使用するように指定することもできます。例:
AddDefaultCharset utf-8AddDefaultCharset は、次の状況でのみ使用してください。すべてのテキスト リソースが同じ特定の文字セットを使用しており、それらの文字セットを個別にマークするのは非常に面倒です。そのような例の 1 つは、動的コンテンツ (従来の CGI スクリプトなど) を含むリソースに文字セット パラメーターを追加することです。これは、ユーザーが指定したデータを出力に含めることにより、クロスサイト スクリプティング攻撃につながる可能性があります。ただし、注意してください: デフォルトの文字セットを設定するとブラウザの自動文字セット検出機能が無効になるため、より良い解決策はこれらのスクリプトを変更または削除することです。
AddCharset 指令 说明 在给定的文件扩展名与特定的字符集之间建立映射 语法 AddCharset charset extension [extension] ... 作用域 server config, virtual host, directory, .htaccess 覆盖项 FileInfo 状态 基本(B) 模块 mod_mimeAddCharset ディレクティブは、特定のファイル拡張子と特定の文字セットの間のマッピングを確立します。 charset は、拡張子に拡張子を付けたファイルの MIME 文字セット パラメータです。このマッピング関係は、既存のすべてのマッピング関係に強制的に追加され、既存のすべての拡張子拡張子マッピングが上書きされます。
AddLanguage ja .ja AddCharset EUC-JP .euc AddCharset ISO-2022-JP .jis AddCharset SHIFT_JIS .sjis上記の定義により、文書xxxx.ja.jisは文字セットISO-2022-JPを使用した日本語文書とみなされます(文書xxxx.jis.jaも同様)。 AddCharset ディレクティブは、ドキュメントを正しく翻訳して表示できるようにクライアントにドキュメントの文字セット エンコーディングを通知することに加えて、コンテンツ ネゴシエーション (ユーザーの設定情報に基づいてユーザーに返す複数のドキュメントの中から 1 つを選択する) にも使用されます。 )。
<Directory> 指令 说 明 封装一组指令,使之仅对文件空间中的某个目录及其子目录生效 语 法 <Directory directory-path> ... </Directory> 作用域 server config, virtual host 状 态 核心(C) 模 块 core7b799fe73e35dcfdc019b13f54de80e5 と bb15ed4aadeed04b3991578461de0768 は、特定のディレクトリとそのサブディレクトリにのみ有効となるように一連の命令をカプセル化するために使用されます。 「ディレクトリ」スコープで使用できる任意のディレクティブを使用できます。 Directory-path には、ディレクトリへのフルパス、または Unix シェル一致構文を含むワイルドカード文字列を指定できます。ワイルドカード文字列では、「?」は任意の 1 文字に一致し、「*」は任意の文字のシーケンスに一致します。 「[]」を使用して文字範囲を決定することもできます。上記のワイルドカード文字はいずれも、「/」文字と一致することはできません。したがって、7c1008bdb607a11792067596d259a76e は /home/user/public_html と一致しませんが、40a4b63eece0e093aa00135ef0eac5fb は正しく一致します。例:
<Directory /usr/local/httpd/htdocs> Options Indexes FollowSymLinks </Directory>ディレクトリ パス パラメータを使用する場合は注意してください。これらのパラメータは、Apache がファイルにアクセスするために使用するファイル システム パスと一致している必要があります。特定の
解決策
1. php.ini のコードをコメントアウトします[php.ini] ;default_charset = "UTF-8"2. ホーム ディレクトリの言語を
AddDefaultCharset utf-8# # に変更します#必要なフォルダーのエンコード方法を変更します [E:/OpenStudy/www/Electronic Books]
<Directory "E:/OpenStudy/www/Electronic Books"> AddDefaultCharset gb2312 </Directory>
変更が完了し、Apache を再起動すれば完了です
関連知識の詳細については、こちらをご覧ください。
PHP 中国語 Web サイト以上がApache PHPが文字化けした場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。