我的网站有 charset=UTF-8,mysql DATABASE 也设置为 UTF-8 编码。
我的问题是,当我从 mysql 检索文本到网站时,我需要使用 php 函数 mb_convert_encoding(@db_field,'utf-8','iso-8859-1') 正确显示文本。看起来该系统认为 mysql DB 在 iso-8859-1 中。
我的网站有 charset=UTF-8,mysql DATABASE 也设置为 UTF-8 编码。
我的问题是,当我从 mysql 检索文本到网站时,我需要使用 php 函数 mb_convert_encoding(@db_field,'utf-8','iso-8859-1') 正确显示文本。看起来该系统认为 mysql DB 在 iso-8859-1 中。
连接到数据库后立即运行:
mysqli_query("SET NAMES utf8"); /* or mysql_query */
将表的排序规则设置为 UTF-8 是不够的,您还需要指定(使用此查询)在 PHP 和 MySQL 服务器之间通信期间应使用的编码。
更多细节在这里:在 MySQL 中设置名称 utf8?
确保任何地方的 UTF-8 兼容性很棘手;我的 UTF-8 清单如下:
<meta charset="UTF-8" />
出现在所有页面上SET NAMES utf8
连接数据库后运行mb_internal_encoding("UTF-8")
在脚本开头调用mb_
并尽可能使用字符串函数