gpt4 book ai didi

javascript - 使用 ajax 获取时未按预期显示 unicode 文本

转载 作者:行者123 更新时间:2023-11-30 06:04:19 24 4
gpt4 key购买 nike

我有一个管理模块和一个前端模块。

我有一个类别部分。

我通过 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 一些默认但没有效果的东西。

我附上了下面的屏幕截图在新窗口或标签中打开图片以查看大图 enter image description here

在上图中,您可以看到 utf 字符在列表中显示良好,但在使用 ajax 和 json 进行编辑时,它显示为 ?????在文本框中。

enter image description here

下面是文本在数据库中的显示方式... enter image description here

最佳答案

SET NAMES 'utf8' COLLATE 'utf8_general_ci'

这帮助我解决了这个问题。

建立连接后执行此查询。

我从代码启动器框架中获得了这些信息,因为使用它我的代码运行良好,但是当我直接使用 mysql_query 时,我无法获得预期的结果。

如果您使用的是 code igniter,那么这是默认设置,否则您必须包含该行。

我不接受这个作为我自己的答案,因为用户可能会发布更多原因,所以我正在等待这个问题的更多评论和答案。

无论如何它现在正在工作。

此外,确保表排序规则是utf8,字段也是。

关于javascript - 使用 ajax 获取时未按预期显示 unicode 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6125056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com