0

我的网站有 charset=UTF-8,mysql DATABASE 也设置为 UTF-8 编码。

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

4

1 回答 1

4

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

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

将表的排序规则设置为 UTF-8 是不够的,您还需要指定(使用此查询)在 PHP 和 MySQL 服务器之间通信期间应使用的编码。
更多细节在这里:在 MySQL 中设置名称 utf8?

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

  • 确保每个源文件都保存为 UTF-8
  • 确保<meta charset="UTF-8" />出现在所有页面上
  • 确保每个数据库表都设置为使用 UTF-8
  • SET NAMES utf8连接数据库后运行
  • mb_internal_encoding("UTF-8")在脚本开头调用mb_并尽可能使用字符串函数
于 2013-11-04T13:54:44.913 回答