迁移 Web 服务器 (apache)。Debian 到 Ubuntu 字符集问题

迁移 Web 服务器 (apache)。Debian 到 Ubuntu 字符集问题

我想将旧网站(php 5.6)从 Debian 8.10 迁移到 Ubuntu 16.04.3 服务器。

apache 配置已导出到新服务器,并且 mysql 数据库托管在另一台服务器上:没有变化。

迁移后,数据库中的重音符号显示为:“é”。该问题仅在数据库中获取数据时出现。

这些字符在数据库中也显示原样,但在旧网站上,它可以在网络浏览器中正确显示。

数据库是 mariaDB 10.0.31,排序规则为:latin1。

我不能触碰数据库和 php 代码。

PHP / apache 配置相同。只是托管系统不同。为什么字符解释不同?

我在 vhost 配置中尝试了这些选项:CharsetDefault UTF-8 AddDefaultCharset UTF-8 AddCharset UTF-8 .utf8

我也尝试更改语言环境:en_US.UTF-8 fr_FR.UTF-8

但没有改变效果...

任何想法 ?

感谢您的帮助 !

旧配置:PHP 5.6.30-0+deb8u1 Apache/2.4.10 Debian 8.10

新配置:PHP 5.6.32-1+ubuntu16.04.1+deb.sury.org+2 Apache/2.4.18 Ubuntu 16.04.3

虚拟主机:

    <VirtualHost *:80>
        ServerAdmin [email protected]
        DocumentRoot /var/www-HIDDEN
        ServerName yyy.HIDDEN.fr

        ScriptAlias /cgi-bin/ /var/www/cgi-bin/

        <Directory /var/HIDDEN/>
                AllowOverride All
                Options Indexes FollowSymLinks
                Require all granted
                Order allow,deny
                allow from all
        </Directory>

        <IfModule mod_php5.c>
                AddType application/x-httpd-php .php
                php_flag magic_quotes_gpc Off
                php_flag track_vars On
                php_flag register_globals Off
                php_value include_path .
        </IfModule>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

新服务器上的区域设置:

root@ubuntu16:~# locale
LANG=fr_FR.UTF-8
LANGUAGE=
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=

旧服务器上的区域设置:

root@debian8:~# locale
LANG=fr_FR.UTF-8
LANGUAGE=
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=

但是,这个值存在同样的问题:en_US.UTF-8

相关内容