【发布时间】:2014-02-22 17:09:48
【问题描述】:
我创建了一个 API.NET Web API。它使用默认的 utf-8 内容编码。我需要输出为 latin-1 以匹配数据库。
【问题讨论】:
-
如果你的输出编码需要匹配你的数据库编码,你可能做错了...joelonsoftware.com/articles/Unicode.html
-
你能详细说明我应该怎么做吗?我的数据库使用 Latin-1 编码,然后来自该数据库的字符显示在 utf-8 的网页上(默认情况下),所以我想将页面设置为 Latin 1,以便正确显示字符。
-
您是否从数据库中提取数据作为原始字节数组并将其直接发送到您的输出?如果您使用的 DB 库将来自 DB 的文本类型处理为 .net 字符串,则这些应该像库中的所有其他 .net 字符串一样转换为 UCS-2,并且您的数据库编码应该是无关紧要的。
-
你能给我一个例子,说明什么时候可以在数据库中使用 utf-8 并在呈现的网页上使用不同的编码类型?
-
在这里同意乔纳斯。渲染的“输出”进入浏览器,然后从 .net 的 Unicode 字符串编码为内容协商产生的任何内容。如果 a)您的数据在数据库中看起来不错,b)在 latin1 上看起来很糟糕浏览器和c)您确定所有数据库字符实际上都可以翻译成latin1,问题出在您的数据库访问权限上。您可以通过在单步执行控制器操作时查看调试器中的 .net 字符串来检查这一点。如果它们是垃圾,asp.net 对此无能为力。
标签: asp.net web-services asp.net-web-api content-type content-encoding