Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用JSON和jQuery编码问题_Javascript_Jquery_Html_Json - Fatal编程技术网

Javascript 使用JSON和jQuery编码问题

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

我有一个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.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,链接已关闭。