DOJO xhrGet json带有特殊字符
DOJO xhrGet json with special character
我使用dojo和struts 1.3.8,我想通过dojo传递一些"特殊"字符,如è,°,ù,€。得到一个动作struts saveBill。但是当我在动作中打印json时它给了我
è la prova n°10
我不知道问题在哪里,我把所有的内容类型设置为utf-8在所有的jsp…我还使用了一个struts过滤器来编码utf-8…没有什么……我哪里错了?这是javascript代码
var billJson = {"row":"0","descr":"è la prova n°10"};
dojo.xhrGet({
url: "saveBill.do",
headers: {'bill': billJson, 'Content-Type': 'application/json; charset=UTF-8'},
handleAs: "text",
load: function(response, ioArgs) {
showMessage(response);
},
error: function(message, ioArgs) {
showMessage(message);
}
});
这是响应头(copy&paste from Firebug)
Host localhost:9080
User-Agent Mozilla/5.0 (Windows NT 5.1; rv:2.0) Gecko/20100101 Firefox/4.0
Accept text/html,application/xhtml+xml,application/xml;q=0.9,**;q=0.8
Accept-Language it-it,it;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding gzip, deflate
Accept-Charset UTF-8,*
Keep-Alive 115
Connection keep-alive
bill {"row":"0","descr":"è la prova n°10"}
Content-Type application/json; charset=UTF-8
X-Requested-With XMLHttpRequest
Referer http://localhost:9080/CA3_S_001/login.do
Cookie invoiceTreeSaveStateCookie=undefined%2C000001%2C000014; JSESSIONID=0000QeyArD4K7CDr_oyNkrpw9Zk:-1
谢谢! !
需要对这些字符进行unicode转义:所以不是è,而是''u00E8
这里有一个资源:http://www.fileformat.info/info/unicode/category/Ll/list.htm
在HTTP头中发送JSON是相当不标准的,我不建议这样做。不要在报头中发送JSON的一个原因是,正如你所发现的,HTTP报头只是字节;它们没有内在的代码页来将它们转换为字符串。相反,我将发送JSON数据在一个POST体;我觉得你的运气会好得多。
然而,如果你绝对必须在报头中发送非ascii JSON数据,你可以尝试调用ServletRequest.setCharacterEncoding("UTF-8")。我认为它只影响URL参数和POST主体的解析,但值得一试。您还可以,正如Robot Woods建议的那样,'uXXXX编码JSON中的所有非ascii字符(其中XXXX是字符的UTF-16编码的十六进制表示)。
但是说真的,把它放在POST主体中;这是一个更强大、更好的解决方案。
相关文章:
- 如何解析json中的特殊字符
- JSON编码一个包含#和其他特殊字符的字符串
- 用Javascript替换从JSON中获取的数组数据特殊字符
- json-break-html中的特殊字符
- Titanium Mobile JSON 和 Android 中的特殊字符
- 将特殊字符字符串到 JSON 字符串化非法令牌中
- 使用特殊字符解析 JSON
- 如何在JSON字符串中使用特殊字符
- 如何使用带有特殊字符的jquery解析Json
- 通过某些特殊字符或字符序列进行拆分来解析JSON输出
- JSON通信损坏了特殊字符
- 如何避免在Javascript中创建Json对象时使用特殊字符
- JSON分析因特殊字符而失败
- 在 Ajax POST 和 JSON 中发送特殊字符
- 从JSON到xml的特殊字符
- 如何添加具有特殊字符的字符串作为json键
- Js - json.解析-保留特殊字符
- JSON.用特殊字符解析
- JSON Javascript特殊字符如何获取值
- JSON中的特殊字符会破坏JS