我在正在呈现的ASP .NET页面中看到一个特殊字符。 此页面将该内容从REST服务读取为XML响应。
如果我在浏览器中加载XML,它会显示“ - ”。 (它比通常的破折号要长:))
但是当使用EVAL在ASPX页面转发器上打印时,它会显示一个特殊字符。
该页面有一个元标记。
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
但是,浏览器会将页面编码检测为UTF-8。
我正在寻找一种解决方案,以便摆脱特殊的角色。
答案 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);
}