IIS7下的ASP页面,改为Utf-8编码后,Html部分的中文显示正常,但是由 Response.Write 输出的中文字符,在不特定的时间会变成乱码,一开始以为是浏览器问题,测试了多个浏览器故障依旧不定时出现:
<%@ language="VBScript" CODEPAGE="65001" %>
<% Option Explicit %>
<%
Response.Charset="UTF-8"
%>
必须关闭浏览器重新打开网站才会恢复正常。
后来想起 Nosql.asp 文件内的提示文字未使用中文,全部使用的是 &#数字; 这样的 UNiCode 形式来表示中文字符。受此启发,于是有了以下函数,改装 Response.Write ,自动检测是否有Ascii值大于255的字符,有的话,则全部转换为&#;形式再输出:
Public Function zh2html(s)
Dim i, r, c, t
For i = 1 To Len(s)
t = Mid(s, i, 1)
c = AscW(t)
If c < 0 Then c = c + 65536
If c > 255 Then
r = r & "&#" & c & ";"
Else
r = r & t
End If
Next
zh2html = r
End Function
sub RW(s):Response.Write zh2html(s):end sub
从此再也没有出现过乱码了。
标签:Write,中文,ASP,乱码,&#,zh2html,Response,页面 From: https://blog.csdn.net/jessezappy/article/details/143603883