HTML输出中的特殊字符,可能是由于编码问题

时间:2010-12-15 18:05:44

标签: asp.net encoding character-encoding

我在正在呈现的ASP .NET页面中看到一个特殊字符。 此页面将该内容从REST服务读取为XML响应。

如果我在浏览器中加载XML,它会显示“ - ”。 (它比通常的破折号要长:))

但是当使用EVAL在ASPX页面转发器上打印时,它会显示一个特殊字符。

该页面有一个元标记。

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

但是,浏览器会将页面编码检测为UTF-8。

我正在寻找一种解决方案,以便摆脱特殊的角色。

1 个答案:

答案 0 :(得分:2)

char可能是ASCII代码150或151.某些程序(特别是MS-Word)使用这些程序用于短划线和长划线。问题是charset ISO-8859-1不会将128 -159之间的字符映射到任何值,因此您无法确定浏览器将如何显示该字符。

以下函数(仅输入,未选中)会将源字符串从8859-1转换为UTF-8

function string MakeUTF8String(string SourceStr)
{
   byte[] b = Encoding.GetEncoding("iso-8859-1").GetBytes(SourceStr)
   return System.Text.Encoding.UTF8.GetString(b);
}