【发布时间】:2012-07-16 00:41:02
【问题描述】:
我在 jQuery 1.7.2 中使用旧版本的骨干.js (0.5.3),当 Backbone.sync 执行时(它是 jQuery $.ajax() 的包装器),它将 contentType 显式设置为:
params.contentType = 'application/json';
这看起来像我想要的,但是内容似乎不是以 utf-8 格式发送的。我正在使用 ndash 进行测试,这是我的示例字符串:
Mathematics K–10
提交到服务器后我得到:
Mathematics K–10
现在,如果我将 contentType(在backbone.js 中)更改为:
params.contentType = 'application/json; charset=utf-8';
一切都按预期工作,我得到了正确的 ndash 字符。如果我注释掉主干中的原始 contentType 行,这也是行为。
jQuery 文档建议:
数据将始终使用 UTF-8 字符集传输到服务器
但是好像如果你显式设置了你的contentType,那么你也需要设置一个字符集。
我的问题是,这种行为有意义吗?我原以为我们总是希望默认值为 utf-8(如 jQuery 文档状态),即使我们明确更改 contentType。有没有其他人遇到过这个或有任何信息可以帮助我?
【问题讨论】:
标签: javascript jquery backbone.js character-encoding