时间:2021-05-28
今天在对搜索吧的程序进行utf-8修正时,发现生成的utf-8格式文档存在着乱码,原来文件
create_html.asp代码如下:
复制代码 代码如下:
<%@LANGUAGE="VBSCRIPT"CODEPAGE="65001"%>
<%
setobjrs=server.createObject("Scripting.FileSystemObject")
conn=server.mappath("example.xml")
setStream=objrs.opentextfile(conn,1,true,-2)
content=stream.readall
Response.Write(content)
stream.close
%>
这段代码要实现的功能是:从example.xml(utf-8格式)中读取文字包括中文,然后输出,但是每次输出却都是乱码,这个问题着实困扰了我很久,后来还是在经典论坛“小韩”“萧萧小雨”的帮助下解决了,真是感谢他们了。
或许我一开始就是错误的,现在正确的代码修改后如下,用了“萧萧小雨”给的代码,包括了用读取的内容生成新的utf-8格式文档。详细代码如下:
复制代码 代码如下:
<%@LANGUAGE="VBSCRIPT"CODEPAGE="65001"%>
<%Response.CodePage=65001%>
<%Response.Charset="UTF-8"%>
<%
'申明变量
dimread_path,write_paht,content
'----读取文件内容------------------------
FunctionReadTextFile(filePath,CharSet)
dimstm
setstm=Server.CreateObject("adodb.stream")
stm.Type=1'adTypeBinary,按二进制数据读入
stm.Mode=3'adModeReadWrite,这里只能用3用其他会出错
stm.Open
stm.LoadFromFilefilePath
stm.Position=0'把指针移回起点
stm.Type=2'文本数据
stm.Charset=CharSet
ReadTextFile=stm.ReadText
stm.Close
setstm=nothing
EndFunction
'----写入文件------------------------
SubWriteTextFile(filePath,fileContent,CharSet)
dimstm
setstm=Server.CreateObject("adodb.stream")
stm.Type=2'adTypeText,文本数据
stm.Mode=3'adModeReadWrite,读取写入,此参数用2则报错
stm.Charset=CharSet
stm.Open
stm.WriteTextfileContent
stm.SaveToFilefilePath,2'adSaveCreateOverWrite,文件存在则覆盖
stm.Flush
stm.Close
setstm=nothing
EndSub
'要读取的文件路径
read_path=Server.MapPath("example.xml")
'要写入的文件路径
write_path=Server.MapPath("example.asp")
'读取的文件内容
content=ReadTextFile(read_path,"utf-8")
'输出读取的文件
Response.Write(content)
'开始写入
callWriteTextFile(write_path,content,"utf-8")
%>
这段代码相当实用,对于生成utf-8格式静态页十分有用,一些必要的解释我也注明了,需要注意的是:
复制代码 代码如下:
<%@LANGUAGE="VBSCRIPT"CODEPAGE="65001"%>
<%Response.CodePage=65001%>
<%Response.Charset="UTF-8"%>
你的页面不要忘记这几行代码了,否则你读取后输出的内容是乱码。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
这个是网页编码的问题。中文一般采用的是gb2312这样的话显示中文基本上不会出现乱码。但是有时候我们用的是一种国际上通用的utf-8格式。如果utf-8格式人不
若需要utf-8格式,请自行将下面的GB2312改成utf-8。'二进制转字符串,否则会出现乱码的!FunctionsTb(vin)ConstadTypeTex
我们做GRUB引导PE启动时容易出现乱码问题。经过多次测试与研究,发现原来是因为菜单没有保存为UTF-8编码。所以我们在制作菜单时编码务必是UTF-8格式,而不
复制代码代码如下:'函数名称:ReadTextFile'作用:利用AdoDb.Stream对象来读取UTF-8格式的文本文件'-----------------
需求:将utf-8格式的文件转换成gbk格式的文件实现代码如下:复制代码代码如下:defReadFile(filePath,encoding="utf-8"):