【发布时间】:2012-03-30 08:17:29
【问题描述】:
我正在尝试将英文和中文存储在一个 MySQL 表中的不同字段中。
lang1 为英文,lang2 为中文。
我为表格字符集尝试了 UTF8_general_ci 和 UTF8_unicode_ci。
用于输入的 Html 页面也使用 UTF8。但是由于某种原因,汉字又回来了???。任何人都知道为什么会发生这种情况?我从UTF8 page as well复制并粘贴了汉字。
编辑: 输入页面的请求标头:
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
页面本身设置:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
编辑: 看起来在将字段 lang2 设置为 utf8_general_ci 后,它正在正确存储字符。我将表和数据库排序规则设置为 utf8,但错过了特定字段。
【问题讨论】:
-
用于检索数据的数据库连接是否也设置为utf-8?
-
@MikePurcell 我不确定,现在我会检查一下,谢谢!
-
@MikePurcell 我的数据库配置设置为使用“utf8”。
-
这可能无法保证用于检索数据的连接支持 utf-8,您需要发出
SET NAMES 'UTF8'查询以确保。 -
@MikePurcell 我会试试的,谢谢!
标签: php mysql character-encoding