Javascript 使用JSON和jQuery编码问题
我有一个json文件,如下所示:Javascript 使用JSON和jQuery编码问题,javascript,jquery,html,json,Javascript,Jquery,Html,Json,我有一个json文件,如下所示: { "nombre": "Jesús Ramírez", "edad": "25 Años", "imagen":"file.jpg" } 我使用jquery函数$.getJSON从json获取数据,但在html文档中显示数据时遇到问题。我这样做: JAVASCRIPT $.getJSON(file.json, function(data) { var name= data.nombre; document.getEle
{
"nombre": "Jesús Ramírez",
"edad": "25 Años",
"imagen":"file.jpg"
}
我使用jquery函数$.getJSON从json获取数据,但在html文档中显示数据时遇到问题。我这样做:
JAVASCRIPT
$.getJSON(file.json, function(data) {
var name= data.nombre;
document.getElementById("student_name").innerHTML=name;
var age= data.edad;
document.getElementById("student_age").innerHTML=age;
var photo= data.imagen;
document.getElementById("student_img");
student_img.src=photo;
});
HTML代码
<div id="student_name"></div>
<div id="student_age"></div>
<img id="student_img"></img>
但数据显示如下:
{
"nombre": "Jesús Ramírez",
"edad": "25 Años",
"imagen":"file.jpg"
}
- 杰斯�s Ram�雷兹
- 25 A�操作系统
<meta charset="utf-8">
我试着:
<META HTTP-EQUIV= "Content-Type" CONTENT="text/html;charset=ISO-8859-1">
但它们不起作用
有人能帮我吗?如何解决此问题???要显示西班牙语字符,可以使用相应的html特殊字符。 我建议编写一个函数,用正确的html字符替换字符 这是一份清单 更新 您可以使用此函数进行转换
function HTMLEncode(str){
var i = str.length,
aRet = [];
while (i--) {
var iC = str[i].charCodeAt();
if (iC < 65 || iC > 127 || (iC>90 && iC<97)) {
aRet[i] = '&#'+iC+';';
} else {
aRet[i] = str[i];
}
}
return aRet.join('');
}
函数HTMLEncode(str){
var i=str.length,
aRet=[];
而(我--){
var iC=str[i].charCodeAt();
如果(iC<65 | | iC>127 | | |(iC>90&&iC如果您可以控制发送JSON信息的服务,我强烈建议您在发送到网页之前对其进行URL编码
例如,如果您的服务是用PHP编写的,您可以这样做:
echo urlencode($your_json_string)
您可以在之前设置AJAX请求的内容类型,即使不建议使用
$.ajaxSetup({ scriptCharset: "utf-8" , contentType: "application/json; charset=utf-8"});
另一个想法是使用而不是
这里有一个例子来证明它是有效的。可能会在这里找到一些有用的信息*应该有效,你把它放在head标记中了吗?服务器可能用错误的字符编码生成JSON(UTF-8除外).但我正在处理本地文件,我没有使用服务器加载数据,在这种情况下我能做什么?这绝对没有必要。我尝试使用javascript函数替换它,但不起作用。我的json文件是由java应用程序保存的。我没有使用php或服务器加载数据。我的所有应用程序都用于本地工作。首先,一个java应用程序构建json文件,然后我使用jquery解析json文件,最后在HTML页面中显示数据。我没有使用php或服务器加载数据。我的所有应用程序都用于本地工作。首先,java应用程序构建json文件,然后我使用jquery解析json文件,最后在HTML页面中显示数据,我没有使用正如Fiddle所显示的,这也适用于本地数据。Jquery的.getJson()只不过是一个简化的、预配置的.ajax()由于配置不适合您的用例,您将遇到编码问题。解决这一问题的正确方法是在获取数据时设置正确的编码,而不是事后通过一些模糊的解析来修复数据。至于JSFIDLE:您必须按“运行”首先查看结果。谢谢,我将尝试它。但是,我看不到JSFIDLE,链接已关闭。