字符集使用webapi将英镑英镑符号发送给html客户端

时间:2015-07-14 22:34:41

标签: asp.net-web-api encoding

在数据库中,我有一个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字符集也没有用。

2 个答案:

答案 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 ,它在发送到客户端之前操纵数据。删除自定义格式化程序后,我可以在浏览器中看到£