网页出现乱码啦

我用古老的FrontPage中文版设计了一个网页,这个网页很简单,就一行文字:

我喜欢用Foxtable开发管理软件

我将这个网页复制到"d:\web"目录下,通过HttpRequest将这个网页发送到客户端的浏览器上,意外出现了,中文全部变成了乱码:

如果我们在本机双击这个文件,浏览器是能正常显示中文的,说明网页本身是没有问题的:

为了查明原因,我用Nodepad++(也可以用记事本)打开这个网页,看到的源代码是:

现在出现中文乱码的原因清楚了,因为HttpRequest并不会检查要发送网页的编码格式,默认一律采用utf-8编码格式读取网页内容,然后发送到用户浏览器。

为解决这个问题,我们可以修改HttpRequest事件代码:

Dim fl As String = "d:\web\" & e.Path
If
filesys.FileExists(fl)
    Dim idx As Integer = fl.LastIndexOf(".")
    Dim ext As String  = fl.SubString(idx)
    Select Case ext
        Case ".jpg",".gif",".png",".bmp",".wmf",".js",".css" ,".html",".htm",".doc",".docx",".xls",".xlsx",".pdf"
            e.ResponseEncoding = "gb2312"
'
设置网页编码为gb2312
            e.WriteFile(fl)
    End
Select

Else

    e.WriteString(
"
好奇怪,你访问的页面不存在!")
End
If

现在浏览器能正常显示中文了:

HttpRequest的e参数ResponseEncoding,用于设置向客户端发送文本性质的内容时,所采用的编码格式。

修改网页编码为utf-8格式

你也可以不修改HttpRequest事件代码,使用utf-8编码保存网页即可,包括js和css文件, 我们都建议采用utf-8编码。
新的网页设计工具,多数默认编码就是utf-8格式。
如果已经有其他编码格式的网页,需要改为utf-8编码,以上面的文件为例,步骤为:


1、用记事本打开这个网页,找到charset=gb2312,改为charset=utf-8
2、不要直接保存,在文件菜单单击"另存为",在另存窗口选择编码格式为"utf-8",然后单击"确定"按钮保存即可。


本页地址:http://www.foxtable.com/mobilehelp/topics/0022.htm