网页出现乱码啦
我用古老的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",然后单击"确定"按钮保存即可。