今天在對搜索吧的程序進行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則報錯