$.ajax 显示“而不是重音符号,如”é“或”ã”

$.ajax displays "�" instead of accents, like "é" or "ã"

本文关键字:符号 显示 ajax 音符      更新时间:2023-09-26

我需要能够使用 $.ajax 和 JSON 文件显示字母"é",但我得到的最接近的是一个警报窗口,上面写着",基本上任何事情都会有所帮助,只是没有 PHP 家伙,是的,我有<meta charset="utf-8">。无论如何,这是JavaScript/jQuery代码:

$(document).ready(function() {
$.ajax({
    type: "POST",
    url: "alejandra.json",
    contentType: "charset=utf-8; application/json",
    dataType: "json",
    success: function(data) {
        var x = data[0].texto;
        alert(x);
    }
});
});

这是 JSON 文件:

[
{
"texto":"é"
}
]

PS:这一切都在我的PC本地运行。

这解决了OP的问题

右键单击您的文件并使用记事本打开它,单击 File -> Save as ,如果不是,请将编码更改为 UTF-8

在我刚刚执行的非常快速的测试中:

内容类型 charset=utf-8;application/json(不正确)与内容类型application/json;charset=utf-8(正确)不同


以上实际上没有任何区别,我的测试是服务器发送的内容类型(在某些情况下确实会有所不同)

确保 .json 文件以 UTF-8 编码保存 - 我最初将其保存为 ansi 并且它不起作用,但以 UTF-8 保存工作正常

可能需要.toLocaleLowerCase()方法:

success: function(data) {
    var x = data[0].texto.toLocaleLowerCase();
    alert(x);
}

描述

toLocaleLowerCase()

方法根据任何特定于区域设置的大小写映射返回转换为小写的字符串的值。 toLocaleLowerCase() 不会影响字符串本身的值。在大多数情况下,这将产生与 toLowerCase() 相同的结果,但对于某些区域设置(例如土耳其语),其大小写映射不遵循 Unicode 中的默认大小写映射,可能会有不同的结果。