Ext JSON是一種很常見的數據交換格式,它可以方便地將JavaScript對象與JSON互相轉換。但是,在進行中文數據交換時,如果不進行中文轉碼,就會出現亂碼等問題。
在Ext中,進行JSON數據的編碼和解碼非常方便,只需要使用Ext.JSON.encode()和Ext.JSON.decode()方法即可。當進行中文數據交換時,我們可以使用encodeURIComponent()和decodeURIComponent()方法進行中文轉碼。
var chineseData = { name: '張三', age: 19, hobbies: ['看電影', '旅游', '游泳'], address: { province: '浙江省', city: '杭州市' } }; var encodedData = encodeURIComponent(Ext.JSON.encode(chineseData)); console.log(encodedData);// %7B%22name%22%3A%22%25E5%25BC%25A0%25E4%25B8%2589%22%2C%22age%22%3A19%2C%22hobbies%22%3A%5B%22%25E7%259C%258B%25E7%2594%25B5%25E5%25BD%25B1%22%2C%22%25E6%2597%2585%25E6%25B8%25B8%22%2C%22%25E6%25B8%25B8%25E6%25B3%25B3%22%5D%2C%22address%22%3A%7B%22province%22%3A%22%25E6%25B5%2599%25E6%25B1%259F%25E7%259C%2581%22%2C%22city%22%3A%22%25E6%259D%25AD%25E5%25B7%259E%25E5%25B8%2582%22%7D%7D var decodedData = decodeURIComponent(encodedData); console.log(decodedData);// {"name":"張三","age":19,"hobbies":["看電影","旅游","游泳"],"address":{"province":"浙江省","city":"杭州市"}}
通過上面的代碼,我們先將一個包含中文字符的JavaScript對象進行編碼,然后再進行解碼。其中,%7B和%7D分別表示左右花括號,%22表示雙引號,%25表示中文字符前綴。
使用Ext中的JSON和JavaScript中的encodeURIComponent()和decodeURIComponent()方法,我們可以方便地對中文字符進行編碼和解碼,從而避免了發送和接收數據時的亂碼問題。