例如,它是否是有效的ajax请求:
$.ajax({
type: "POST",
url: "SomePage.aspx/GetSomeObjects",
contentType: "application/json; charset=utf-8",
...
});
有时仅作为示例,否则软件可能会在没有显式字符集的情况下崩溃。
用于application / json媒体类型的rfc
4627
表示,它不接受第6节中的任何参数:
The MIME media type for JSON text is application/json.
Type name: application
Subtype name: json
Required parameters: n/a
Optional parameters: n/a
可以解释为charset不应该与application /json一起使用。
和第3节表明,这是没有必要指定字符集:
JSON text SHALL be encoded in Unicode. The default encoding is
UTF-8.
Since the first two characters of a JSON text will always be ASCII
characters [RFC0020], it is possible to determine whether an octet
stream is UTF-8, UTF-16 (BE or LE), or UTF-32 (BE or LE) by looking
at the pattern of nulls in the first four octets.
00 00 00 xx UTF-32BE
00 xx 00 xx UTF-16BE
xx 00 00 00 UTF-32LE
xx 00 xx 00 UTF-16LE
xx xx xx xx UTF-8
因为可以从内容推断出UTF-8、16、32编码。为什么说UTF-8是默认设置?在RFC中未指定选择其他字符编码的方式,无论如何都可以确定地找到该编码。还是存在其他支持Unicode的字符编码(非UTF-8、16、32)?
有人认为可以使用字符集:
我不同意您的评估,认为 必须 将其删除。RFC
2046指出“除“文本”子类型以外的其他媒体类型可能选择采用此处定义的charset参数”,这表明在应用程序类型上对charset参数的存在没有限制。此外,RFC
2045指出“ MIME实现必须忽略其名称无法识别的任何参数”。因此,假设它的存在会造成任何伤害是不合理的。
兼容RFC的软件是否可以使用charset参数生成内容类型application / json?兼容RFC的软件是否应接受此类请求?
最近的json rfc 7159说:
注意:没有为该注册定义“字符集”参数。
确实添加一个对符合条件的收件人没有任何影响。
即,charset
必须由符合条件的收件人忽略。
它与rfc 2045一致: “ MIME实现必须忽略其无法识别其名称的任何参数。” 因为rfc 7159仍然为application / jsonmime媒体类型(无参数)指定: “必需参数:n / a;可选参数:n / a” 。
json文本不再被限制为对象或数组,而基于前两个字符来计算字符编码的旧部分3在新的rfc中消失了。允许使用UTF-8,UTF-16或UTF-32,但无法指定编码(没有BOM,默认为UTF-8)。
charset参数可以与http / 1.1中的application / json内容类型一起使用吗?
如果charset="utf-8"
使用则没有任何危害-
utf-8是json文本的默认编码,但是其他值可能会引起误解,因为该值必须由符合条件的收件人忽略。它只能破坏正确解析Content-Type标头的客户端,例如,将其逐字与“ application /json”进行比较,或者尝试使用utf-8编码以外的客户端解码json文本的客户端。
兼容RFC的软件是否可以使用charset参数生成内容类型application / json?
没有。没有为application / json定义任何参数。
兼容RFC的软件是否应接受此类请求?
是的,应该。的值charset
必须忽略。
ECMA-404(JSON数据交换格式)以Unicode代码点的形式定义json文本,即json本身未指定有关编码详细信息的行为。
ECMA-262(ECMAScript语言规范)还在String(Unicode类型)的顶部定义了json格式。
例如,它是否是有效的ajax请求: 它有时被用作示例,或者软件可以在没有显式字符集的情况下中断。 rfc 4627 for application/json媒体类型表示不接受第6节中的任何参数: 可以这样解释,charset不应该与Application/json一起使用。 第3节建议无需指定字符集: 因为UTF-8,16,32编码可以从内容中感染。为什么说UTF-8是默认的?rfc中没有指定选择
嗨,有人能帮我处理这个错误吗?当我使用邮递员发送邮件请求时,这里是我的控制器 这就是我使用postman发送json的方式 我正在尝试搜索如何修复它,但错误仍然存在 编辑:这是邮递员的标题 提前致谢
问题内容: 似乎JSON默认编码为UTF-8,Spring MVC 默认返回 ,很难更改。 问题答案: 根据RFC 4627 JSON文本应以Unicode编码。默认编码为UTF-8。 它继续描述了如何检测不同的UTF- *编码,这表明不支持其他编码。 “ SHALL”表示此处的绝对要求(请参阅RFC 2119)。 而且真的是没有理由使用与JSON非UTF编码(如任何可以处理JSON可以 肯定 处
问题内容: 使用firebug时,我在asp.net mvc 4项目中收到此有线错误“ NetworkError:415无法处理… xt / xml; charset = utf-8’– ”。 代码: 服务代码: 该接口是: 和网络配置,我在WCF中使用了无文件: 问题答案: 您需要使用,而不是代码中的常规。这将为端点配置适当的绑定()和行为()以遵守该属性。
当我在localhost:8080/api/users上做一个POST请求来创建一个新用户时,我会得到以下错误: 是请求的主体,选择JSON(应用程序/JSON)。即使我删除角色并将其保持为空,它也会给出相同的错误。 标题的内容类型也是application/json。 这是我的控制器: UserService中的createUser函数: 这是我的用户类:
我试图使用独立的应用程序使用WCF web服务。我可以使用Internet Explorer查看此服务,也可以在Visual studio服务引用中查看。 这就是我得到的错误 如何更改它以使用正确的内容类型? 这是我的配置文件 这是堆栈