Home  >  Article  >  Operation and Maintenance  >  How to solve docker nginx garbled code

How to solve docker nginx garbled code

PHPz
PHPzOriginal
2023-04-04 10:39:381530browse

Docker Nginx garbled code problem solution

In daily development, we often use Docker to deploy our applications, and Nginx, as an excellent Web server, has also been widely used in Docker . However, when using Nginx to deploy applications, we sometimes encounter garbled Chinese or other non-ASCII characters, which is very distressing. This article will introduce how to solve the garbled problem of Docker Nginx and make your website display clearer and more accurate.

  1. Docker Chinese environment settings

In Docker, we need to set the correct locale so that Nginx can correctly parse Chinese characters. Common operating system Chinese environment settings are as follows:

  • Modify the /etc/locale.gen file and uncomment the required locale environment
  • Execute the locale-gen command to generate Locale file
  • Execute the dpkg-reconfigure locales command and select the required locale

However, in Docker, since the image is built based on a basic image (such as Ubuntu), Therefore, the locale of the base image cannot be directly modified. At this time, we can change the locale in Docker by adding the following script code to the Dockerfile:

# 设置中文环境
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

The above code will set the locale in Docker to Chinese, so that Nginx can correctly parse Chinese characters .

  1. Nginx character encoding settings

In addition to the locale settings in Docker, we also need to set the character encoding in Nginx so that Nginx can render Chinese characters correctly. In the Nginx configuration file, we can add the following code:

http {
    charset utf-8;
    ...
}

This code will set the character encoding to UTF-8 to ensure that Nginx can correctly render Chinese characters. If you are using another character set, you need to replace unicode with the corresponding character set name.

  1. Nginx static resource character set setting

In Nginx, static resources (such as images, JS, CSS) may also have garbled characters. At this time, we need to set the correct character set for static resources in the Nginx configuration file. We can add the following code:

http {
    ...
    charset utf-8;

    location ~* \.(jpg|jpeg|gif|png|bmp|icon|css|js|swf|svg)$ {
        charset utf-8;
    }
    ...
}

This code will set the character encoding for static resources to UTF-8 to ensure that Nginx can correctly render Chinese characters in static resources.

  1. HTML document character set settings

Finally, in the HTML document, we also need to set the correct character encoding so that Nginx can render Chinese characters correctly. We can add the following code at the head of the HTML document:

<head>
    <meta charset="utf-8">
    ...
</head>

This code will set the character encoding of the HTML document to UTF-8 and ensure that Nginx can correctly render the Chinese characters in it.

Summary

This article introduces how to solve the problem of Chinese garbled characters in Docker Nginx, including Docker Chinese environment settings, Nginx character encoding settings, Nginx static resource character set settings, and HTML document character set settings. By following the above steps, we can easily solve the problem of Chinese garbled characters in Docker Nginx and make our website clearer and more accurate.

The above is the detailed content of How to solve docker nginx garbled code. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn