如何停止Server.HtmlEncode对UTF8字符进行编码?

3

我该如何停止Server.HtmlEncode对UTF8字符进行编码?我将代码页设置为UTF8,但没有帮助。

这是我的测试案例:

<%@CODEPAGE=65001%>
<%
Response.CodePage = 65001
Response.CharSet = "utf-8"
%>
<%=Server.HtmlEncode("русский stuff <b>bold stuff</b>")%>

通常情况下,它应该输出这个:
русский stuff &lt;b&gt;bold stuff&lt;/b&gt;

但输出结果是:

&#1088;&#1091;&#1089;&#1089;&#1082;&#1080;&#1081; stuff &lt;b&gt;bold stuff&lt;/b&gt;
1个回答

3

Server.HtmlEncode 方法用于转义 >,<,&," 等字符以及 ASCII 码大于等于 0x80 的任何字符。
您可以筛选需要转义的特定字符。
一些通用字符将按照模式进行编码。
如果需要,您也可以添加其他字符。

Private Function cb_Escape(ByVal a, ByVal b, ByVal c, ByVal d)
    cb_Escape = Server.HTMLEncode(b)
End Function

Private Function HTMLEncode2(ByVal sHTML)
    Dim oReg
    Set oReg = New RegExp
        oReg.Global = True
        oReg.Pattern = "([<>""&]+)"
        HTMLEncode2 = oReg.Replace(sHTML, GetRef("cb_Escape"))
    Set oReg = Nothing
End Function

Response.Write HTMLEncode2("русский stuff <b>bold stuff</b>")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接