【问题标题】:Setting Charset on Nginx PHP virtual host not working在 Nginx PHP 虚拟主机上设置字符集不起作用
【发布时间】:2019-12-08 22:14:15
【问题描述】:

我尝试这样设置虚拟主机的字符集:

server {
        root /var/www/mywebsite.com;

...

        charset iso-8859-1;
        override_charset on;

...

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
                charset iso-8859-1;
                override_charset on;

        }
}

我在serverlocation 上都指定了charsetoverried_charset,但它仍在以UTF-8 格式发送标头。

我必须修改 /etc/php/7.2/fpm/php.ini 中的 php.ini 文件以在其中指定 default_charset = "iso-8859-1"

但我想让我的 php 设置为 UTF-8 并在 Nginx 上仅指定一个虚拟主机 iso-8859-1。

在 Apache 上我们可以这样做:

<VirtualHost mywebsite.com:80>
...
    Header set Content-Type "text/html; charset=iso-8859-1"
</VirtualHost>

如何在 Nginx 上做同样的事情?

谢谢。

【问题讨论】:

    标签: nginx utf-8 iso-8859-1 php-7.2


    【解决方案1】:

    这是一个 PHP 问题,而不是 Nginx。默认的 PHP 字符集配置设置为“utf-8”,您希望让它保持原样。因此,要覆盖它,请在脚本的开头添加:

    ini_set('default_charset', 'iso-8859-1');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 2020-02-15
      • 1970-01-01
      • 2023-03-15
      • 2020-01-01
      • 2014-04-05
      • 2017-05-15
      相关资源
      最近更新 更多