【发布时间】:2013-03-23 22:03:56
【问题描述】:
我有一个用 C# 编写的 WCF 应用程序,它以 JSON 或 XML 格式提供我的数据,具体取决于用户在查询字符串中的要求。这是我提供数据的代码的快速 sn-p:
Encoding utf8 = new System.Text.UTF8Encoding(false);
return WebOperationContext.Current.CreateTextResponse(data, "application/json", utf8);
当我使用上述方法传递数据时,特殊字符都被弄乱了。所以查韦斯看起来像查韦斯。另一方面,如果我使用 BOM 创建上面的 utf8 变量或使用枚举 (Encoding.UTF8),则特殊字符可以正常工作。但是,我的一些消费者抱怨他们的代码在使用我的 API 时抛出异常。这当然是因为提要中的 BOM。有没有办法让我在提要中正确显示没有 BOM 的特殊字符?
【问题讨论】:
-
你试过内容类型
application/json; charset=utf-8而不是application/json吗? -
json 的唯一合法编码是 UTF-8/16/32,而 UTF-8 是事实上的标准
标签: json wcf api encoding byte-order-mark