Maison > Article > Opération et maintenance > Comment résoudre le code tronqué de Docker Nginx
Solution Docker+Nginx au problème de code tronqué
Dans le développement quotidien, nous utilisons souvent Docker pour déployer nos applications, et Nginx, en tant qu'excellent serveur Web, est également largement utilisé dans Docker. Cependant, lorsque nous utilisons Nginx pour déployer des applications, nous rencontrons parfois des caractères chinois ou autres caractères non-ASCII tronqués, ce qui est très pénible. Cet article explique comment résoudre le problème tronqué de Docker + Nginx et rendre l'affichage de votre site Web plus clair et plus précis.
Dans Docker, nous devons définir les paramètres régionaux corrects pour que Nginx puisse analyser correctement les caractères chinois. Les méthodes courantes de configuration de l'environnement chinois du système d'exploitation sont les suivantes :
Cependant, dans Docker, puisque l'image est construite sur la base d'une image de base (telle qu'Ubuntu), les paramètres régionaux de l'image de base ne peuvent pas être directement modifiés. À ce stade, nous pouvons modifier les paramètres régionaux dans Docker en ajoutant le code de script suivant au fichier Docker :
# 设置中文环境 RUN apt-get update && \ apt-get install -y locales && \ sed -i 's/# zh_CN.UTF-8 UTF-8/zh_CN.UTF-8 UTF-8/' /etc/locale.gen && \ echo 'LANG="zh_CN.UTF-8"'>/etc/default/locale && \ dpkg-reconfigure --frontend=noninteractive locales && \ update-locale LANG=zh_CN.UTF-8
Le code ci-dessus définira les paramètres régionaux dans Docker sur chinois, afin que Nginx puisse analyser correctement les caractères chinois.
En plus des paramètres régionaux dans Docker, nous devons également définir le codage des caractères dans Nginx afin que Nginx puisse restituer correctement les caractères chinois. Dans le fichier de configuration de Nginx, nous pouvons ajouter le code suivant :
http { charset utf-8; ... }
Ce code définira le codage des caractères sur UTF-8 pour garantir que Nginx puisse restituer correctement les caractères chinois. Si vous utilisez un autre jeu de caractères, vous devez remplacer Unicode par le nom du jeu de caractères correspondant.
Dans Nginx, les ressources statiques (telles que les images, JS, CSS) peuvent également avoir des caractères tronqués. À ce stade, nous devons définir le jeu de caractères correct pour les ressources statiques dans le fichier de configuration Nginx. Nous pouvons ajouter le code suivant :
http { ... charset utf-8; location ~* \.(jpg|jpeg|gif|png|bmp|icon|css|js|swf|svg)$ { charset utf-8; } ... }
Ce code définira le codage des caractères pour les ressources statiques sur UTF-8 pour garantir que Nginx puisse restituer correctement les caractères chinois dans les ressources statiques.
Enfin, dans le document HTML, nous devons également définir le codage de caractères correct afin que Nginx puisse restituer correctement les caractères chinois. Nous pouvons ajouter le code suivant en tête du document HTML :
<head> <meta charset="utf-8"> ... </head>
Ce code définira l'encodage des caractères du document HTML sur UTF-8 et garantira que Nginx puisse restituer correctement les caractères chinois qu'il contient.
Résumé
Cet article explique comment résoudre le problème des caractères chinois tronqués dans Docker + Nginx, y compris les paramètres d'environnement chinois Docker, les paramètres de codage de caractères Nginx, les paramètres de jeu de caractères de ressources statiques Nginx et les paramètres de jeu de caractères de document HTML. En suivant les étapes ci-dessus, nous pouvons facilement résoudre le problème des caractères chinois tronqués dans Docker + Nginx et rendre notre site Web plus clair et plus précis.
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!