Maison >développement back-end >Problème PHP >nginx php définit l'encodage

nginx php définit l'encodage

WBOY
WBOYoriginal
2023-05-06 12:44:071779parcourir

Dans le processus de construction d'un serveur Web utilisant Nginx et PHP, nous rencontrons souvent le problème des caractères chinois tronqués. En effet, Nginx et PHP ne gèrent pas automatiquement le codage chinois par défaut et nous devons le configurer manuellement pour afficher le chinois normalement. Cet article explique comment définir l'encodage dans Nginx et PHP pour résoudre le problème des caractères chinois tronqués.

1. Encodage des paramètres Nginx

La définition de l'encodage dans Nginx doit être effectuée dans le fichier de configuration. En éditant le fichier de configuration Nginx, nous pouvons modifier le Content-Type de l'en-tête de réponse pour définir l'encodage chinois.

  1. Ouvrez le fichier de configuration

Utilisez un éditeur de texte pour ouvrir le fichier de configuration Nginx Le chemin général est : /etc/nginx/nginx. .conf, Vous pouvez utiliser la commande suivante pour ouvrir :

sudo vi /etc/nginx/nginx.conf
  1. Modifier le fichier de configuration

Ajouter la configuration suivante à http : #🎜 🎜#

charset utf-8;
Cette configuration ajoutera Content-Type: text/html; charset=utf-8 à l'en-tête de réponse, indiquant au navigateur que le texte renvoyé est encodé en UTF-8. Nous pouvons également définir d'autres encodages selon nos besoins.

    Redémarrez le serveur Nginx
Après avoir modifié le fichier de configuration, vous devez redémarrer le serveur Nginx pour prendre effet. Vous pouvez utiliser la commande suivante pour redémarrer Nginx :

sudo service nginx restart
2. Encodage des paramètres PHP

Il existe de nombreuses façons de définir l'encodage en PHP, qui peuvent être définies dans le php. ini ou définir dynamiquement dans le code. Voici deux méthodes couramment utilisées.

    Défini dans php.ini
Il existe une option default_charset dans le fichier de configuration de PHP php.ini, qui peut être utilisée pour définir la valeur par défaut codage. Vous pouvez le configurer en suivant les étapes suivantes :

1) Recherchez le fichier php.ini, qui se trouve généralement dans le répertoire /etc/php/PHP version/, tel que /etc/php /7.2.

2) Ouvrez le fichier php.ini et recherchez la ligne suivante :

;default_charset =
3) Supprimez le point-virgule et définissez l'encodage, tel que :

default_charset = "utf-8"
# 🎜🎜#4) Enregistrez et fermez le fichier php.ini, puis redémarrez le service PHP-FPM pour que les modifications prennent effet.

Défini dans le code
  1. Si vous ne souhaitez pas modifier le fichier php.ini, vous pouvez également le définir dynamiquement dans le code. Vous pouvez utiliser la fonction d'en-tête de PHP pour définir la valeur de Content-Type sur l'encodage spécifié.

Par exemple, pour définir l'encodage sur UTF-8, vous pouvez utiliser le code suivant :

header('Content-Type: text/html; charset=utf-8');

Cette fonction doit être appelée avant de sortir un contenu, sinon "l'en-tête est déjà envoyé" apparaîtra comme une erreur.

3. Résumé

Dans le processus de construction d'un serveur Web utilisant Nginx et PHP, le paramétrage de l'encodage est une étape très importante. Si le paramètre est incorrect, le problème des caractères chinois tronqués peut facilement survenir. En définissant l'encodage dans Nginx et PHP, vous pouvez facilement résoudre le problème des caractères chinois tronqués et améliorer les performances et la stabilité du serveur Web.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn