js-ajax-json-unicode

ajax

ajax访问同一url时,第二次访问的结果会直接使用第一次访问的结果,导致数据错误,
为避免此情况的出现,在地址或参数后加唯一标识,new Date()之类的。
async: true,代表在执行ajax时页面其他动作也可以执行,为false时不执行完此ajax不可执行其他操作。
<script type="text/javascript">
            function access() {
                $.ajax({
                    type: "get",
                    dataType:"json",
                    url: "http://localhost:8080/Test/test/test",
                    async: true,
//                  statusCode: {
//                      404: function() {
//                          alert('page not found');
//                      }
//                  },
                    error: function(XMLHttpRequest) {
                        if(XMLHttpRequest.status=404){
                            console.log(XMLHttpRequest);
                        }
                    },
                    success: function(data,status,XMLHttpRequest) {
                        console.log("-----------------------------------");
                        console.log(data);
                        console.log("-----------------------------------");
                        console.log(status);
                        console.log("-----------------------------------");
                        console.log(XMLHttpRequest);

                    }
                });
            }
        </script>

json

 //JSON字符串转换为JSON对象
 var obj = eval('(' + str + ')');
 var obj = str.parseJSON(); 
 var obj = JSON.parse(str); 
 //取数据时使用.运算符,如:obj.msg
 //将JSON对象转化为JSON字符
 var str=obj.toJSONString();
 var str=JSON.stringify(obj);

unicode转utf-8

function UnicodeToUtf8(unicode) {
                var uchar;
                var utf8str = "";
                var i;
                for(i = 0; i < unicode.length; i += 2) {
                    uchar = (unicode[i] << 8) | unicode[i + 1]; //UNICODE为2字节编码,一次读入2个字节 
                    utf8str = utf8str + String.fromCharCode(uchar); //使用String.fromCharCode强制转换 
                }
                return utf8str;
            }

utf-8转unicode

function Utf8ToUnicode(strUtf8) { 
  var i,j; 
  var uCode; 
  var temp = new Array(); 
  for(i=0,j=0; i<strUtf8.length; i++){ 
    uCode = strUtf8.charCodeAt(i); 
    if(uCode<0x100){         //ASCII字符 
      temp[j++] = 0x00; 
      temp[j++] = uCode; 
    }else if(uCode<0x10000){ 
      temp[j++] = (uCode>>8)&0xff; 
      temp[j++] = uCode&0xff; 
    }else if(uCode<0x1000000){ 
      temp[j++] = (uCode>>16)&0xff; 
      temp[j++] = (uCode>>8)&0xff; 
      temp[j++] = uCode&0xff; 
    }else if(uCode<0x100000000){ 
      temp[j++] = (uCode>>24)&0xff; 
      temp[j++] = (uCode>>16)&0xff; 
      temp[j++] = (uCode>>8)&0xff; 
      temp[j++] = uCode&0xff; 
    }else{ 
      break; 
    } 
  } 
  temp.length = j; 
  return temp; 
}
function Utf8ToUnicode(unicode) {
    if (unicode >= 0x00000000 && unicode <= 0x0000007F) {
        return unicode;
    }
    else if (unicode >= 0x00000080 && unicode <= 0x000007FF) {
        var r1 = (((unicode & 0x7C0) >> 6) | 0xC0) << 8;
        var r2 = (unicode & 0x03F) | 0x80;
        return r1 | r2;
    }
    else if (unicode >= 0x00000800 && unicode <= 0x0000FFFF) {
        var r1 = (((unicode & 0xF000) >> 12) | 0xE0) << 16;
        var r2 = (((unicode & 0x0FC0) >> 6) | 0x80) << 8;
        var r3 = ((unicode & 0x003F) | 0x80);
        return r1 | r2 | r3;
    }
    else if (unicode >= 0x00010000 && unicode <= 0x0010FFFF) {
        var r1 = (((unicode & 0x1C0000) >> 18) | 0xE0) << 24;
        var r2 = (((unicode & 0x03F000) >> 12) | 0x80) << 16;
        var r3 = (((unicode & 0x000FC0) >> 6) | 0x80) << 8;
        var r4 = ((unicode & 0x00003F) | 0x80);
        return r1 | r2 | r3 | r4;
    }
    else {
        return false;
    }
}
### 回答1: 当使用 AJAX 发送数据时,我们通常需要确保数据的编码格式为 UTF-8,以避免中文等非 ASCII 字符出现乱码的情况。以下是使用 AJAX 发送 UTF-8 编码的示例: ``` var xhr = new XMLHttpRequest(); xhr.open('POST', '/api/submit', true); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { console.log(xhr.responseText); } }; var data = 'name=' + encodeURIComponent('张三') + '&age=18'; xhr.send(data); ``` 在上面的示例,我们先通过 `xhr.setRequestHeader()` 方法设置请求头 `Content-Type` 属性为 `application/x-www-form-urlencoded; charset=UTF-8`,以指定发送的数据编码格式为 UTF-8。 然后,我们使用 `encodeURIComponent()` 方法对数据进行编码,以确保非 ASCII 字符正确传输。最后,使用 `xhr.send()` 方法发送数据。 在服务端接收到数据后,也需要确保数据的编码格式为 UTF-8,以正确解析含有非 ASCII 字符的数据。 ### 回答2: Ajax(Asynchronous Javascript and XML)是一种在网页使用的异步的Web开发技术,它通过JavaScript和XML(现在也可以是JSON等数据格式)实现数据的异步加载和交互,从而提升用户体验。 UTF-8(Unicode Transformation Format 8-bit)是一种能够对全世界所有字符进行编码的一种字符编码,它可以用来表示Unicode字符集的所有字符。UTF-8是一种变长的编码方式,它通过使用1到4个字节来表示不同的字符,这样可以减少存储和传输的空间。 在Ajax使用UTF-8编码有以下几个方面的作用和好处: 1. 多语言支持:UTF-8编码可以支持全球范围内的多种语言,包括中文、英文、法文、德文等等。使用UTF-8编码可以确保在Ajax请求传输的数据能够正确地表示和处理各种语言的字符。 2. 数据的正确性:UTF-8编码可以将特殊字符和非ASCII字符正确地表示和传输,这对于包含特殊字符或表情符号等的数据处理非常重要。使用UTF-8编码可以避免因特殊字符导致的数据传输错误或乱码问题。 3. 网络传输效率:由于UTF-8是一种变长编码方式,相对于固定长度的编码方式(如UTF-16)来说,它可以节省传输数据的空间。这对于Ajax请求来说尤为重要,因为Ajax请求需要通过网络传输数据,使用UTF-8编码可以减少数据传输量,提升网络传输效率。 总之,Ajax和UTF-8是互相独立的技术,但它们可以结合使用,提升Web应用的用户体验和数据处理能力。通过在Ajax请求使用UTF-8编码,我们可以确保正确地处理各种语言的字符,避免数据传输错误和乱码问题,同时提高网络传输效率。 ### 回答3: Ajax是一种网页开发技术,用于实现异步的数据交互。而UTF-8是一种字符编码标准,用于表示各种语言的字符。在Ajax,可以使用UTF-8编码来处理数据的传输和显示。 首先,Ajax可以通过XMLHttpRequest对象发送请求并接收响应数据。当发送请求时,可以通过设置XMLHttpRequest对象的属性来指定使用UTF-8编码。例如,可以使用`xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");`来设置请求头的字符编码。 在接收响应数据时,可以通过XMLHttpRequest对象的属性来获取服务器返回的数据。如果服务器使用UTF-8编码返回数据,可以直接使用`xhr.responseText`来获取响应内容。 在将数据显示到网页上时,也需要确保网页使用UTF-8编码。可以通过在网页的头部添加`<meta charset="UTF-8">`来指定网页的字符编码。 使用Ajax与UTF-8编码可以更好地处理各种语言的字符。UTF-8编码可以表示世界上所有的字符,包括汉字、日语、韩语等各种字符。而Ajax可以通过异步请求将数据与服务器进行交互,实现更加流畅和高效的用户体验。通过使用Ajax和UTF-8编码,可以轻松地处理多语言环境下的数据交互和显示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值