我正在尝试使用UTF-8,但我不确定是否一切都正确。我正在尝试使用PHP将JSON写入数据库,通过AJAX检索它,并在HTML中显示它。
因此,首先,我将PHP和JS文件保存为UTF-8格式。
我将UTF-8头文件添加到PHP文件中。
数据库表的创建方式如下:
CREATE TABLE `achieve` (
`id` bigint(20) unsigned NOT NULL,
`json` mediumtext,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 在保存到数据库时,我使用以下PHP代码:
$json=$_REQUEST["json"];
...
$result = mysql_query($query);
if ($line = mysql_fetch_assoc($result))
$query = sprintf(
'UPDATE achieve SET json = "%s" WHERE id=%d ',
mysql_real_escape_string($json), $ID
);
else
$query = sprintf(
'INSERT INTO achieve (id, json) VALUES (%d, "%s") ',
$FBID, mysql_real_escape_string($json)
);
mysql_query($query);当我在HTML中显示值时,它似乎仍然采用了错误的编码。知道我错过了什么吗?
发布于 2010-12-09 05:39:05
很抱歉浪费大家的时间。我终于找到了我问题的答案!在将我的JavaScript保存到数据库之前,我已经在JSON中使用了escape()。显然,这只适用于ASCII码,应该改用encodeURIComponent()。现在它起作用了!
发布于 2010-12-08 08:02:00
您是否可以使用诸如PHPMyAdmin之类的数据库浏览器验证数据是否被正确存储?请先尝试执行以下两个查询:
SET NAMES utf8
SET CHARACTER SET utf8https://stackoverflow.com/questions/4382938
复制相似问题