在数据库中,我有一个NVARCHAR(100)字段,其中包含 UK£符号。我在 WebAPI 应用程序的 web.config 中添加了以下内容:
<configuration>
<system.web>
<globalization
requestEncoding="iso-8859-1"
responseEncoding="iso-8859-1"/>
</system.web>
</configuration>
在html页面中,我将以下内容添加到html的开头:
<meta http-equiv="Content-type" content="text/html;charset=ISO-8859-1">
我希望£正确显示,但不会。它显示为?
在客户端,我不能使用字符串替换将编码的£替换为&amp; pound ,因为我有这么多符号的内容。
有什么想法吗?
更新
这是我仍然看到的 。根据这个page,它是一个替换字符。我复制了notepad.exe中的文本并尝试保存为unicode html页面,应用ISO-8859-1字符集也没有用。
答案 0 :(得分:1)
你应该能够使用utf-8。
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="en-GB" uiCulture="en-GB" />
答案 1 :(得分:0)
问题与使用 UTF-8 的正确字符集有关。 WebAPI默认使用utf-8。
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/8.0
X-AspNet-Version: 4.0.30319
X-SourceFiles: =?UTF-8?B?QzpcdGVtcFxUZXN0UG91bmRcVGVzdFBvdW5kXEFwaVxWYWx1ZXNcMQ==?=
X-Powered-By: ASP.NET
Date: Thu, 16 Jul 2015 21:25:24 GMT
Content-Length: 13
上面的回复将字符集显示为 utf-8 。但是,可以使用自定义 MediaTypeFormatter 覆盖此设置。我有一个自定义 MediaTypeFormatter ,它在发送到客户端之前操纵数据。删除自定义格式化程序后,我可以在浏览器中看到£。