首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用JavaScript、PHP和MySQL时,我应该在哪里设置字符集

问在使用JavaScript、PHP和MySQL时,我应该在哪里设置字符集
EN

Stack Overflow用户
提问于 2010-12-08 07:57:11
回答 2查看 128关注 0票数 2

我正在尝试使用UTF-8,但我不确定是否一切都正确。我正在尝试使用PHP将JSON写入数据库,通过AJAX检索它,并在HTML中显示它。

因此,首先,我将PHP和JS文件保存为UTF-8格式。

我将UTF-8头文件添加到PHP文件中。

数据库表的创建方式如下:

代码语言:javascript
复制
CREATE TABLE `achieve` (  
`id` bigint(20) unsigned NOT NULL,  
`json` mediumtext,  
PRIMARY KEY  (`id`)  
) ENGINE=InnoDB DEFAULT CHARSET=utf8;  

在保存到数据库时,我使用以下PHP代码:

代码语言:javascript
复制
$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中显示值时,它似乎仍然采用了错误的编码。知道我错过了什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-09 05:39:05

很抱歉浪费大家的时间。我终于找到了我问题的答案!在将我的JavaScript保存到数据库之前,我已经在JSON中使用了escape()。显然,这只适用于ASCII码,应该改用encodeURIComponent()。现在它起作用了!

票数 0
EN

Stack Overflow用户

发布于 2010-12-08 08:02:00

您是否可以使用诸如PHPMyAdmin之类的数据库浏览器验证数据是否被正确存储?请先尝试执行以下两个查询:

代码语言:javascript
复制
SET NAMES utf8
SET CHARACTER SET utf8
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4382938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档