如何让asp生成<?xml version="1.0" encoding="UTF-8"?>格式的xml文件??
xmlfile=server.mappath("../xml/news.xml")Setfso=CreateObject("Scripting.FileSystemObj...
xmlfile=server.mappath("../xml/news.xml")
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile(xmlfile,True)
MyFile.WriteLine<?xml version=""1.0"" encoding=""UTF-8""?>")
虽然上面代码是<?xml version=""1.0"" encoding=""UTF-8""?>
生成的还是 ANSI 文件
如何生成UTF-8的xml文件?? 展开
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile(xmlfile,True)
MyFile.WriteLine<?xml version=""1.0"" encoding=""UTF-8""?>")
虽然上面代码是<?xml version=""1.0"" encoding=""UTF-8""?>
生成的还是 ANSI 文件
如何生成UTF-8的xml文件?? 展开
2个回答
展开全部
Asp生成UTF8编码的静态页面的方法之一2008/04/21 15:35Asp生成UTF8编码的静态页面的方法之一
编写一个生成静态的程序很容易,通常生成静态都用到 FSO 。通过服务器的FSO组件读取模板文件,然后用数据替换掉模板中的标签;再采用FSO把替换后的数据写入指定的静态网页中。
但在用FSO生成UTF-8编码的网页总是空白,后来通过搜索才知道FSO根本就不支持UTF-8编码文本的读取和写入。
UTF-8是国际通用的语言编码,在任何语言的操作系统上都能正常的显示中文、英文、日文、韩文、阿拉伯文。。。
这时就得用到adodb.stream组件......
程序代码'***********************************************
'函数名:LoadFile
'作 用:利用ADODB.Stream读取文件
'Update:2008-2-9
'***********************************************
Function LoadFile(ByVal File)
Dim objStream
On Error Resume Next
Set objStream = Server.CreateObject("ADODB.Stream")
If Err.Number=-2147221005 Then
Response.Write "<div align='center'>非常遗憾,您的主机不支持ADODB.Stream,不能使用本程序</div>"
Err.Clear
Response.End
End If
With objStream
.Type = 2
.Mode = 3
.Open
.LoadFromFile Server.MapPath(File)
If Err.Number<>0 Then
Response.Write "<div align='center'>文件<font color='#ff0000'>"&File&"</font>无法被打开,请检查是否存在!</font></div>"
Err.Clear
Response.End
End If
.Charset = "utf-8"
.Position = 2
LoadFile = .ReadText
.Close
End With
Set objStream = Nothing
End Function
'***********************************************
'函数名:SaveToFile
'作 用:利用ADODB.Stream存储内容到文件
'Update:2008-2-9
'***********************************************
Sub SaveToFile(ByVal strBody,ByVal File)
Dim objStream
On Error Resume Next
Set objStream = Server.CreateObject("ADODB.Stream")
If Err.Number=-2147221005 Then
Response.Write "<div align='center'>非常遗憾,您的主机不支持ADODB.Stream,不能使用本程序</div>"
Err.Clear
Response.End
End If
With objStream
.Type = 2
.Open
.Charset = "utf-8"
.Position = objStream.Size
.WriteText = strBody
.SaveToFile Server.MapPath(File),2
.Close
End With
Set objStream = Nothing
End Sub
先引用上面两段函数,接着下面:
程序代码Dim wstr
wstr=LoadFile("../Template/Sort.asp") '读取模板内容
'...
'这里是你的代码(替换标签等操作)...
'...
Call SaveToFile(wstr,"..\Template\Sort.html") '生成文件
Conn.Close : Set Conn=Nothing '关闭数据链接,释放资源
Response.Write("<script>alert(""Create Html Ok!"");window.close();</script>")
Response.End()
到这里所有操作就全部OK了
编写一个生成静态的程序很容易,通常生成静态都用到 FSO 。通过服务器的FSO组件读取模板文件,然后用数据替换掉模板中的标签;再采用FSO把替换后的数据写入指定的静态网页中。
但在用FSO生成UTF-8编码的网页总是空白,后来通过搜索才知道FSO根本就不支持UTF-8编码文本的读取和写入。
UTF-8是国际通用的语言编码,在任何语言的操作系统上都能正常的显示中文、英文、日文、韩文、阿拉伯文。。。
这时就得用到adodb.stream组件......
程序代码'***********************************************
'函数名:LoadFile
'作 用:利用ADODB.Stream读取文件
'Update:2008-2-9
'***********************************************
Function LoadFile(ByVal File)
Dim objStream
On Error Resume Next
Set objStream = Server.CreateObject("ADODB.Stream")
If Err.Number=-2147221005 Then
Response.Write "<div align='center'>非常遗憾,您的主机不支持ADODB.Stream,不能使用本程序</div>"
Err.Clear
Response.End
End If
With objStream
.Type = 2
.Mode = 3
.Open
.LoadFromFile Server.MapPath(File)
If Err.Number<>0 Then
Response.Write "<div align='center'>文件<font color='#ff0000'>"&File&"</font>无法被打开,请检查是否存在!</font></div>"
Err.Clear
Response.End
End If
.Charset = "utf-8"
.Position = 2
LoadFile = .ReadText
.Close
End With
Set objStream = Nothing
End Function
'***********************************************
'函数名:SaveToFile
'作 用:利用ADODB.Stream存储内容到文件
'Update:2008-2-9
'***********************************************
Sub SaveToFile(ByVal strBody,ByVal File)
Dim objStream
On Error Resume Next
Set objStream = Server.CreateObject("ADODB.Stream")
If Err.Number=-2147221005 Then
Response.Write "<div align='center'>非常遗憾,您的主机不支持ADODB.Stream,不能使用本程序</div>"
Err.Clear
Response.End
End If
With objStream
.Type = 2
.Open
.Charset = "utf-8"
.Position = objStream.Size
.WriteText = strBody
.SaveToFile Server.MapPath(File),2
.Close
End With
Set objStream = Nothing
End Sub
先引用上面两段函数,接着下面:
程序代码Dim wstr
wstr=LoadFile("../Template/Sort.asp") '读取模板内容
'...
'这里是你的代码(替换标签等操作)...
'...
Call SaveToFile(wstr,"..\Template\Sort.html") '生成文件
Conn.Close : Set Conn=Nothing '关闭数据链接,释放资源
Response.Write("<script>alert(""Create Html Ok!"");window.close();</script>")
Response.End()
到这里所有操作就全部OK了
参考资料: http://hi.baidu.com/bj1686/blog/item/1479b011bb6857c3a6ef3f55.html
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询