编码UTF之间的问题
我正在将一个网站(PHP,MYSQL)更改为另一台服务器,我将其配置到Linux-Apache环境中。 问题是有些页面显示字符编码错误。 数据以latin1_swedish_ci存储在mysql中,涉及的php文件也在iso-8859-1中编码。 但是,PHPMyAdmin,如果我查询,则会正确显示这些数据。 HTTP标头显示“text / html; charset = iso-8859-1”,所以没有错。
我不知道在哪里寻找解决这个问题。 我不知道它是Apache问题还是PHP以某种方式尝试将数据读取为utf-8而不是实际上是什么。
这是目前“SHOW VARIABLES LIKE'%char%';”
+--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+
您的数据不会以latin1_swedish_ci存储,它会以latin1存储。 这也被称为iso-8859-1; 他们是一样的东西。 瑞典部分是整理。 这是一个常见的混乱点。
你连接到你的数据库,至少是你用来显示系统变量的那个,设置为utf8。 这不是拉丁文1。
当你建立到数据库的连接时,你应该马上发出这个命令,无论是在php中还是在你使用交互式客户端程序的时候。
SET NAMES latin1
你可以在这里阅读:https://dev.mysql.com/doc/refman/5.6/en/charset-connection.html
链接地址: http://www.djcxy.com/p/25133.html