Php 为什么我需要mb_convert_编码来显示正确的字符

Php 为什么我需要mb_convert_编码来显示正确的字符,php,html,mysql,encoding,mb-convert-encoding,Php,Html,Mysql,Encoding,Mb Convert Encoding,我的网站有charset=UTF-8,mysql数据库也设置为UTF-8编码 我的问题是,当我从mysql检索文本到网站时,我需要使用php函数mb_convert_编码(@db_字段,'utf-8','iso-8859-1')来正确显示文本。看起来系统认为mysql DB在iso-8859-1中。连接到数据库后立即运行此命令: mysqli_query("SET NAMES utf8"); /* or mysql_query */ 仅将表的排序规则设置为UTF-8是不够的,还需要指定(通过此

我的网站有charset=UTF-8,mysql数据库也设置为UTF-8编码


我的问题是,当我从mysql检索文本到网站时,我需要使用php函数mb_convert_编码(@db_字段,'utf-8','iso-8859-1')来正确显示文本。看起来系统认为mysql DB在iso-8859-1中。

连接到数据库后立即运行此命令:

mysqli_query("SET NAMES utf8"); /* or mysql_query */

仅将表的排序规则设置为UTF-8是不够的,还需要指定(通过此查询)PHP和MySQL服务器之间通信期间应使用的编码。
更多详细信息如下:

确保UTF-8在任何地方的兼容性都很棘手;我的UTF-8清单如下:

  • 确保每个源文件都保存为UTF-8
  • 确保所有页面上都有
  • 确保每个数据库表都设置为使用UTF-8
  • 连接到数据库后运行
    设置名称utf8
  • 在脚本开头调用
    mb\u internal\u encoding(“UTF-8”)
    ,并尽可能使用
    mb\u
    字符串函数

连接到数据库后立即运行此操作:

mysqli_query("SET NAMES utf8"); /* or mysql_query */

仅将表的排序规则设置为UTF-8是不够的,还需要指定(通过此查询)PHP和MySQL服务器之间通信期间应使用的编码。
更多详细信息如下:

确保UTF-8在任何地方的兼容性都很棘手;我的UTF-8清单如下:

  • 确保每个源文件都保存为UTF-8
  • 确保所有页面上都有
  • 确保每个数据库表都设置为使用UTF-8
  • 连接到数据库后运行
    设置名称utf8
  • 在脚本开头调用
    mb\u internal\u encoding(“UTF-8”)
    ,并尽可能使用
    mb\u
    字符串函数

非常感谢,它真的解决了我的问题。但是我不明白为什么有必要运行这个函数。即使mysql数据库已经设置为utf8?但是非常感谢,它现在可以工作了:)仅仅将表的排序规则设置为UTF-8是不够的,还需要指定PHP和MySQL服务器在通信期间应该使用的编码。在我的答案中添加了这个。非常感谢,现在知道了。非常感谢,它真的解决了我的问题。但是我不明白为什么有必要运行这个函数。即使mysql数据库已经设置为utf8?但是非常感谢,它现在可以工作了:)仅仅将表的排序规则设置为UTF-8是不够的,还需要指定PHP和MySQL服务器在通信期间应该使用的编码。在我的答案中添加了这个。非常感谢,现在知道了。