【问题标题】:Special character in HTML output, likely due to an encoding issueHTML 输出中的特殊字符,可能是由于编码问题
【发布时间】:2010-12-15 18:05:44
【问题描述】:

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

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

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

页面有一个元标记。

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

不过,浏览器将页面编码检测为 UTF-8。

我正在寻找一个解决方案,以便我可以摆脱特殊字符。

【问题讨论】:

    标签: asp.net encoding character-encoding


    【解决方案1】:

    字符可能是 ASCII 码 150 或 151。一些程序(尤其是 MS-Word)将这些用于破折号和长破折号。问题是字符集 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);
    }
    

    【讨论】:

    • 谢谢,成功了。我正在尝试相同的方法。但是 GetEncoding("[specific one]") 很有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-03
    • 2018-07-28
    相关资源
    最近更新 更多