钢铁新闻报道:用ASP程序怎样生成UTF-8格式的HTML,求高手指点。

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/27 20:30:35
我在升级一个网站的新闻系统,准备用asp生成一个UTF-8格式的inc文件,因为整个系统是UTF-8格式的,所以生成ANSI格式引入到页面后出现的是乱码,所以必须是UTF-8保存。

以下是源代码,求高手指点。
----------------------
set rs=server.CreateObject("adodb.recordset")
rs.Source="select top "&NewsNum&" * from [News] where "&classid&" order by NewsID DESC"
rs.Open rs.Source,conn_work,1,1

set fs=server.CreateObject("Scripting.FileSystemObject")

if FileType="ASP" then
FilePath=server.MapPath("../NewsUpdate.inc")

set JSFile=fs.CreateTextFile(FilePath)
JSFile.writeline("<table cellpadding=3 cellspacing=0 border=0>")

while not rs.EOF
JSFile.writeline("<tr>")
JSFile.writeline("<td width=100% >")
StrNews="<a href=""info_news.asp?NewsID="&rs("NewsID")&"&classid="&rs("classid")&""">"&trim(rs("newsname"))&"(" & year(rs("adddate")) & "-" & Month(rs("adddate")) &"-"& Day(rs("adddate")) & ")</a>"
JSFile.writeline StrNews
JSFile.writeline("<td width=100% >")
JSFile.writeline("</tr>")
rs.MoveNext
wend

JSFile.writeline("</table>")
----------------------
测试成功即送积分。
2楼的高手能对您的介绍详细一些么?
甚至于直接修改我提供的代码,谢谢您!

上面说的方法不对,应该是这样的,使用另外一个对象ADODB.Stream来生成UTF-8的文件。

例子如下:

Set objStream = Server.CreateObject("ADODB.Stream")
With objStream
.Type = adTypeText
.Mode = adModeReadWrite
.Open
.Charset = "utf-8"
.Position = objStream.Size
.WriteText=html
.SaveToFile Directory & "/" & FileName,adSaveCreateOverWrite
.Close
End With

Set objStream = NoThing

语言的转换是在<head>中加载实现的,在该页中将这句<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">加入<head>
与</head>中间。