源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 303|回复: 9

[ASP编程] Asp 编码互转的研究和实现代码

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2009-4-30 00:37:13 | 显示全部楼层 |阅读模式
在2009年4月11日的时候,我已经把代码实现给做好了,但是一直没有时间去写这篇文章,所以今天抽空就把这篇文章给补上了,也为我们广大asp爱好者递上一份美羹,填补了asp编码转换的空缺。 文章背景:
某天,我的一个同事给我看了CSDN上面的一篇关于编程语言排行榜的文章,里面我看到VB还是排名很不错的,我就说,asp(vbscript)确实挺不错。结果他就反驳我,说asp不好,很多东西很难实现。我说比如哪些东西?我开发了几年的asp都没有发现很难实现的东西,除非是属于非脚本语言范围内的,比如多线程的应用(当然,asp也可以模拟实现多线程任务)等。结果他说了什么多线程,还有编码转换等,说自己曾经为了转换编码费了很大精力却没有成功过,所以觉得asp太弱。听到这样的话,我们就知道他的编程底子还不够扎实,并且对asp认识也是非常有限的(并且后来说自己asp几个常用的基本对象都不知道,也没有用过,我差点被气晕过去——连这都没有用过,还跟我谈asp很弱,看来...白长着么大了,连“没有根据,没有发言权”都不懂!呵呵...),所以,我一气之下,在那个周末就把asp编码互转的问题给实现了,让他见识见识什么是asp,竟然这么看不起asp,想着就火大!当然,我的这个研究也同时填补了到目前为止关于asp开发中编码转换研究的空白!

现在,我们开始转入正题,首先,我们了解一下编码转换的过程,一段文字的编码如果要转换,我们就要知道当前文字所对应的编码集,然后用对应的编码集去读取,这是编码正确被转换的前提(如果这步弄错了,那么转换出来的就会是一连串乱码)!好了,找对了当前编码,并且正确读取出来了以后,我们就可以用设定好目标编码的Stream对象去保存这个内容到指定文件中了,到这里我们的编码转换就成功了!
下面我们来看一下asp编码转换的具体代码实现:
复制代码 代码如下:
'转换编码 content 要转换编码的内容, cset 目标编码, dest 目标文件绝对路径
Function TransferCharSet(content, cset, dest)
Dim Objstream
Set Objstream = Server.CreateObject("adodb.stream")
objstream.Mode =3
objstream.Charset = cset
objstream.Type = 2
objstream.Open
objstream.WriteText content
objstream.Position = 0
objstream.SaveToFile dest,2
objstream.Close
set objstream = nothing
End Function
'用对应编码读取指定内容
Function getcontent(path)
Dim Objstream
Set Objstream = Server.CreateObject("Adodb.Stream")
objstream.Charset = GetCharSetName(path)
objstream.Type = 2
objstream.Mode =3
'objstream.Charset = code
objstream.Open
Objstream.LoadFromFile path
objstream.Position = 0
getcontent = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
'取得指定内容的编码名称
Function GetCharSetName(path)
Set objstream=server.createobject("Adodb.Stream")
objstream.Type=1
objstream.mode=3
objstream.open
objstream.Position=0
objstream.loadfromfile path
bintou=objstream.read(2)
If AscB(MidB(bintou,1,1))=&HEF And AscB(MidB(bintou,2,1))=&HBB Then
GetCharSetName="utf-8"
ElseIf AscB(MidB(bintou,1,1))=&HFF And AscB(MidB(bintou,2,1))=&HFE Then
GetCharSetName="unicode"
Else
GetCharSetName="gb2312"
End If
objstream.close
Set objstream=nothing
End Function

好了,经过这样一段代码,我们的转换工作就完成了!希望这篇文章能给asp爱好者以及其他语言爱好者带来一些帮助和启发。
最后,我想说的是,编程语言的学习和使用并不难,重要的是自己多动脑筋,想想自己需要的功能怎么去实现,而不是怨天尤人,说这个语言太弱了之类的话。
好了,祝大家编程并快乐着,关于asp的编码转换先写到这里,以后我还会推出更精彩的个人原创文章,谢谢大家!
回复

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-9-6 01:29:41 | 显示全部楼层
下载来瞧瞧
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

124

积分

注册会员

Rank: 2

积分
124
发表于 2022-9-6 06:35:22 | 显示全部楼层
数据库了多久撒快乐的健身卡啦
回复 支持 反对

使用道具 举报

3

主题

1万

回帖

301

积分

中级会员

Rank: 3Rank: 3

积分
301
发表于 2022-11-15 05:39:40 | 显示全部楼层
笑纳了老板
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-11-29 13:03:05 | 显示全部楼层
554411515451555
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

66

积分

注册会员

Rank: 2

积分
66
发表于 2023-2-1 23:26:35 | 显示全部楼层
来看看怎么样
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-5-26 02:57:09 | 显示全部楼层
可以,看卡巴
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-5-19 14:34:05 | 显示全部楼层
老大你好你好好你好
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

100

积分

注册会员

Rank: 2

积分
100
发表于 5 天前 | 显示全部楼层
需要很久了终于找到了
回复 支持 反对

使用道具 举报

4

主题

1万

回帖

303

积分

中级会员

Rank: 3Rank: 3

积分
303
发表于 5 天前 | 显示全部楼层
好东西一定要看看!
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-9-20 06:28 , Processed in 0.200241 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表