成都百度快照优化|成都百度关键词排名优化|成都SEO【思为网络】 --【思为网络】成都专业网站优化公司,公司拥有专业搜索引擎优化团队,提供网站整站优化(网站结构优化、网站内容优化、网站外部优化)、百度排名首页优化、GOOGLE优化排名
成都百度关键词排名优化--成都百度快照首页排名优化
你的位置:首页 » 网页设计制作 » 正文

ASP网站程序动态生成静态HTML文件时文件编码GB2312与UTF-8编码互转问题

2010-7-24 0:0:0 | 作者:sw996 | 2个评论 | 人浏览

我们在开发网站时,经常会遇到中文网站打开会乱码现象,主要原因在于网站开发时编码使用问题,中文网站编码通常使用:GB2312文件编码,英文及其它语言编码通常使用UTF-8编码;我们如果在网站建设时,各页面之间编码不统一,就会造成切换页面时出现中文乱码现象.

如果一个网站有中英文,建议在网站建设时,统一采用国际通用UTF-8文件编码.下面我们重点讲一下ASP程序动态生成HTML静态文件时将文件编码统一为UTF-8编码实现方式:

一般我们在ASP环境下,运行动生静操作时都用到的是FSO,他是专门对文件进行操作的一个组件,他FSO的编码属性只有三种,系统默 认,Unicode,ASCII,并没有我们要的UTF-8,所以一般中文系统上使用FSO组件生成的文件都是gb2312格式的了,即便您在网页内写上 charset="UTF-8"也是没用的

要生成UFT-8格式的文件,ASP环境下我们用 ADODB.Stream代替FSO读写UTF-8文件,因 为,ADODB.Stream,有一个CharSet 属性,可以让您定义要打开或要写入的文件的编码类型,这样一来,ADODB.Stream不仅仅是 只能读取或写入UTF-8的文件,基本上什么格式的文件都可以操作了,当然当前对我们来说比较有用的就是写为UTF-8格式的文件,

下边这个函数可以实现这些功能:

*****************************************
函数参数说明:
FileUrl:生成HTML文件路径
STR:生成HTML文件内容
CharSet:生成HTML时文件编码如:"UTF-8"
*****************************************

Function WriteToFile (FileUrl, Str, CharSet)

Set stm = CreateObject("Adodb.Stream")

stm.Type = 2

stm.mode = 3

stm.charset = CharSet

stm.Open

stm.WriteText Str

stm.SaveToFile FileUrl, 2

stm.flush

stm.Close

Set stm = Nothing

End Function

其中charset可以选择的项有很多,您可以在这找到您想要的:网页编码大全 CodePage CharSet 中英文显示名称,这个函数的功能基本上与您的动生静使用的FSO函数差不多,只是多了一个选择字符编码的属性,当然您也可以把这个属性直接写到函数里,不过这样写比较好,以后如果要用别的转为别的格式,这个函数还可以用的上。

关于ASP网站处理UTF-8编码文件时中文字符截取函数,以及取字符串长度函数,请查询: ASP网站UTF-8编码/GB2312编码中字符串截取函数和获取长度函数   一文.

已有2位网友发表了一针见血的评论,你还等什么?

必填

选填

选填

记住我,下次回复时不用重新输入个人信息

必填,不填不让过哦,嘻嘻。

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

相关推荐