- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个管理模块和一个前端模块。
我有一个类别部分。
我通过 ajax 将文本框中的值发布到 php 来创建类别。admin 和 front end charset 都是 utf-8。
我读到 ajax 默认使用 utf-8 编码。
当我发布数据时,它完美地保存在数据库中。
我可以在数据库中看到该 unicode 文本。
以及我在管理员和前端列出时可以看到它。
但是
当我点击编辑时,我所做的是使用 ajax/json 从服务器获取数据
我得到的只是?????而不是 unicode 文本。
正常加载时显示良好。
可能是什么问题...我缺少什么?
编辑
var jax = createAjax();
jax.open("POST",path,true)
jax.setRequestHeader('Content-type','application/x-www-form-urlencoded; charset=utf-8');
jax.onreadystatechange = afunction;
这是php代码
$query = "select * from $box where id=$id";
if(! ($res = mysql_query($query)))die(mysql_error());
$rs = mysql_fetch_array($res,1);
$rs['status'] = 1;
header("Content-Type: text/html; charset=utf-8");
die(json_encode($rs));
我已经将上面的内容用于请求和响应......甚至我已经将 utf-8 更改为 iso-85**-1 一些默认但没有效果的东西。
我附上了下面的屏幕截图在新窗口或标签中打开图片以查看大图
在上图中,您可以看到 utf 字符在列表中显示良好,但在使用 ajax 和 json 进行编辑时,它显示为 ?????在文本框中。
下面是文本在数据库中的显示方式...
最佳答案
SET NAMES 'utf8' COLLATE 'utf8_general_ci'
这帮助我解决了这个问题。
建立连接后执行此查询。
我从代码启动器框架中获得了这些信息,因为使用它我的代码运行良好,但是当我直接使用 mysql_query 时,我无法获得预期的结果。
如果您使用的是 code igniter,那么这是默认设置,否则您必须包含该行。
我不接受这个作为我自己的答案,因为用户可能会发布更多原因,所以我正在等待这个问题的更多评论和答案。
无论如何它现在正在工作。
此外,确保表排序规则是utf8,字段也是。
关于javascript - 使用 ajax 获取时未按预期显示 unicode 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6125056/
我是一名优秀的程序员,十分优秀!