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