Nginx と PHP を使用して Web サーバーを構築する過程で、頻繁に中国語の文字化けの問題に遭遇します。これは、Nginx と PHP がデフォルトでは中国語のエンコードを自動的に処理しないためで、中国語を通常に表示するには手動で設定する必要があります。この記事では、中国語の文字化けの問題を解決するために、NginxとPHPでエンコードを設定する方法を紹介します。
1. Nginx エンコーディングの設定
Nginx でのエンコーディングの設定は設定ファイルで行う必要があります。 Nginx 構成ファイルを編集することで、応答ヘッダーの Content-Type を変更して中国語エンコーディングを設定できます。
テキスト エディタを使用して Nginx 設定ファイルを開きます。一般的なパスは /etc/nginx/nginx.conf です。次のコマンドを実行して開きます:
sudo vi /etc/nginx/nginx.conf
次の設定を http に追加します:
charset utf-8;
この設定ではコンテンツが追加されます-応答ヘッダー html に「text/; charset=utf-8」と入力すると、返されるテキストが UTF-8 でエンコードされていることをブラウザーに伝えます。必要に応じて他のエンコーディングを設定することもできます。
構成ファイルを変更した後、有効にするために Nginx サーバーを再起動する必要があります。次のコマンドを使用して Nginx を再起動できます:
sudo service nginx restart
2. PHP エンコーディングの設定
PHP でエンコーディングを設定するにはさまざまな方法があり、php.ini 構成ファイルまたはコード内で動的に設定されます。一般的に使用される 2 つの方法を次に示します。
PHP の設定ファイル php.ini には、default_charset オプションがあり、これを使用してデフォルトのエンコーディングを設定できます。次の手順に従ってセットアップできます。
1) php.ini ファイルを見つけます。このファイルは通常、/etc/php/PHP version/ ディレクトリにあります (/etc/php/7.2 など)。 。
2) php.ini ファイルを開き、次の行を見つけます:
;default_charset =
3) セミコロンを削除し、次のようにエンコードを設定します:
default_charset = "utf-8"
4) 保存そして、php.ini ファイルを閉じて、PHP-FPM サービスを再起動して、変更を有効にします。
php.ini ファイルを変更したくない場合は、コード内で動的に設定することもできます。 PHP のヘッダー関数を使用して、Content-Type の値を指定したエンコーディングに設定できます。
たとえば、エンコードを UTF-8 に設定するには、次のコードを使用できます。
header('Content-Type: text/html; charset=utf-8');
この関数は、コンテンツを出力する前に呼び出す必要があります。そうしないと、「ヘッダーはすでに送信されました」エラーが発生します。が発生します。
3. まとめ
Nginx と PHP を使用して Web サーバーを構築するプロセスでは、エンコードの設定は非常に重要なステップです。設定を誤ると中国語の文字化けの問題が発生しやすくなります。 NginxやPHPでエンコードを設定することで、中国語の文字化け問題を簡単に解決し、Webサーバーのパフォーマンスと安定性を向上させることができます。
以上がnginx PHPでエンコーディングを設定するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。