首页  /  留言  /  音乐  /  管理

asp指定编码生成静态文件

一般做英文网站或者你要写一个英文的WEB程序,就不适合用GB2312编码,在英文操作系统上会显示乱码。

UTF-8是国际通用的语言编码,在任何语言的操作系统上都能正常的显示中文、英文、日文、韩文、阿拉伯文

做英文站就是为了面向国际,当然要采用UTF-8编码。

编写一个生成静态的程序很容易,通常生成静态都用到 FSO 。通过服务器的FSO组件读取模板文件,然后用数据替换掉模板中的标签;再采用FSO把替换后的数据写入指定的静态网页中。 在9959网店系统的英文版开发中,我就遇到了生成UTF-8编码的网页总是空白的问题。后来通过搜索才知道FSO根本就不支持UTF-8编码文本的读取和写入。这时就得用到adodb.stream组件。

adodb.stream可以读取和写入UTF-8编码文本的文件。

下面分别给出adodb.stream读取和写入文本的函数。

‘adodb读utf-8格式文本
function ReadFromUTF (TempString,CharSet)     ‘webczw注:TempString要读取的模板文件路径; Charset是编码
     dim str
     set stm=server.CreateObject("adodb.stream")
     stm.Type=2
     stm.mode=3
     stm.charset=CharSet
     stm.open
     stm.loadfromfile server.MapPath(TempString)
     str=stm.readtext
     stm.Close
     set stm=nothing
     ReadFromUTF=str
end function

这个函数的使用方法是:   

dim TEMP

TEMP=ReadFromUTF("skins/default/index.htm","UTF-8")

TEMP就是从skins/default/index.htm 这个文件中读取出来的内容;

要注意的是:读取这个模板的时候用了"UTF-8"编码,所以模板文件index.htm必须是个UTF-8编码的文件,否则读取出来的是空白内容。

如何把一个GB2312的网页文件转换成UTF-8?

只要把网页文件用文本(记事本)打开,然后点另存,编码选择UTF-8 ,确定保存。

接下来要替换掉内容中的标签:

TEMP = Replace(TEMP,"{%网页名称%}",webname)

 

接下来最后一步,通过adodb.stream,把内容写入一个UTF-8编码的网页文件。

‘写入UTF-8格式文件
Sub WriteToUTF(FileUrl,Str,CharSet)   ‘webczw注: FileUrl 是文件保存的文件名,Str是要写入的内容,CharSet是采用什么编码写入
set stm=server.CreateObject("adodb.stream")
stm.Type=2
stm.mode=3
stm.charset=CharSet
stm.open
stm.WriteText str
stm.SaveToFile server.MapPath(FileUrl),2  
stm.flush
stm.Close
set stm=nothing
end Sub

举个例子:

Call WriteToUTF("/index.htm",TEMP,"UTF-8")

这样,就把刚才替换好了标签的内容以UTF-8编码写入到了 根目录的 index.htm这个文件里。

 

还有值得注意的是: <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 这句代码要出现在您的网页<head></head>之间。

而asp文件最上方要包含   <%@language=vbscript codepage=65001 %>

 

生成 UTF-8 编码的静态文件就是这么简单。

作者:Wilber 类别:编程学习 时间:2010/11/22 11:09:33 评论:0 点击134
标签:  webczw,伟博小城
打印:  打印本页
字体:  
本页地址:  http://www.webczw.com/s/2010112211093379432.html
上一篇:关于ACCESS里用TOP+排序无法返回正确数量记录的问题
下一篇:asp添加ACCESS数据返回ID再次更新字段

  评论    
当第一个评论者吧!抢沙发>>
  
昵    称: Wilber
形    象:
内    容:
验证码:   
以上网友发言只代表其个人观点,不代表伟博小城的观点或立场。
  Copyright © 2010 - 2016 WEBCZW.COM, All Rights Reserved
伟博小城  版权所有 网站统计
粤ICP备14091989号