制作后台的时候,发现在使用asp制作后台生成前台静态html页面中出现乱码,不能简单在页面抬头加上 utf-8 mate 就可以了的,必须需要针对页面格式进行生成定义。
这也是seo页面中能够让阅读者与搜索引擎能够正常阅读网页html代码的一致性解决,从而提高seo关键词与优化的重要手段。
以下是操作方法。
1、后端生成代码:
包括了用读取的内容生成新的utf-8格式文档。详细代码如下
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<% Response.CodePage=65001%>
<% Response.Charset="UTF-8" %>
<%
'申明变量
dim read_path,write_paht,content
'----读取文件内容------------------------
Function ReadTextFile(filePath,CharSet)
dim stm
set stm=Server.CreateObject("adodb.stream")
stm.Type=1 'adTypeBinary,按二进制数据读入
stm.Mode=3 'adModeReadWrite ,这里只能用3用其他会出错
stm.Open
stm.LoadFromFile filePath
stm.Position=0 '把指针移回起点
stm.Type=2 '文本数据
stm.Charset=CharSet
ReadTextFile = stm.ReadText
stm.Close
set stm=nothing
End Function
'----写入文件------------------------
Sub WriteTextFile(filePath,fileContent,CharSet)
dim stm
set stm=Server.CreateObject("adodb.stream")
stm.Type=2 'adTypeText,文本数据
stm.Mode=3 'adModeReadWrite,读取写入,此参数用2则报错
stm.Charset=CharSet
stm.Open
stm.WriteText fileContent
stm.SaveToFile filePath,2 'adSaveCreateOverWrite,文件存在则覆盖
stm.Flush
stm.Close
set stm=nothing
End Sub
'要读取的文件路径
read_path = Server.MapPath("example.xml")
'要写入的文件路径
write_path = Server.MapPath("example.asp")
'读取的文件内容
content = ReadTextFile(read_path,"utf-8")
'输出读取的文件
Response.Write(content)
'开始写入
call WriteTextFile(write_path,content,"utf-8")
%>
这里面生成html的格式为utf-8 很重要。
2、注意重点
- 这段代码相当实用,对于生成utf-8格式静态页十分有用
- 代码前三行很重要,这是关于页面的输出格式可以规避 gbk编码变为统一的 utf-8 编码。
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<% Response.CodePage=65001%>
<% Response.Charset="UTF-8" %>
你的页面不要忘记这几行代码了,否则你读取后输出的内容是乱码。