【原创】Asp编码互转的研究和实现
来源:互联网 发布:淘宝网抱枕十字绣 编辑:程序博客网 时间:2024/06/02 06:16
文章权属:此文章为本人原创,请勿随意转发和拷贝,谢谢!若有需要,请联系我,MSN: lgjie@msn.com
文章背景:
某天,我的一个同事给我看了CSDN上面的一篇关于编程语言排行榜的文章,里面我看到VB还是排名很不错的,我就说,asp(vbscript)确实挺不错。结果他就反驳我,说asp不好,很多东西很难实现。我说比如哪些东西?我开发了几年的asp都没有发现很难实现的东西,除非是属于非脚本语言范围内的,比如多线程的应用(当然,asp也可以模拟实现多线程任务)等。结果他说了什么多线程,还有编码转换等,说自己曾经为了转换编码费了很大精力却没有成功过,所以觉得asp太弱。听到这样的话,我们就知道他的编程底子还不够扎实,并且对asp认识也是非常有限的(并且后来说自己asp几个常用的基本对象都不知道,也没有用过,我差点被气晕过去——连这都没有用过,还跟我谈asp很弱,看来...白长着么大了,连“没有根据,没有发言权”都不懂!呵呵...),所以,我一气之下,在那个周末就把asp编码互转的问题给实现了,让他见识见识什么是asp,竟然这么看不起asp,想着就火大!当然,我的这个研究也同时填补了到目前为止关于asp开发中编码转换研究的空白!
花絮:
在2009年4月11日的时候,我已经把代码实现给做好了,但是一直没有时间去写这篇文章,所以今天抽空就把这篇文章给补上了,也为我们广大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的编码转换先写到这里,以后我还会推出更精彩的个人原创文章,谢谢大家!
- 【原创】Asp编码互转的研究和实现
- 原创:PHP内核研究之类的实现
- C语言实现几种编码形式的互转 -----(整理加原创)
- 转:快速H.264编码算法的研究及实现
- JSP页面编码问题研究(原创)
- 用ASP模拟ASP.net的DataGrid控件,提高ASP编码效率[原创]
- 对于ASP编码问题的深入研究与最终解决方案
- 对于ASP编码问题的深入研究与最终解决方案
- isPropertyAvailable和isEmpty的使用场景-ibatis研究-原创
- 【HEVC学习与研究】39、HEVC帧内编码的原理和实现(上)
- 【HEVC学习与研究】41、HEVC帧内编码的原理和实现(中)
- 【HEVC学习与研究】42、HEVC帧内编码的原理和实现(下)
- 关于编码的一些认识和理解(Kemin原创)
- [原创]asp如何实现图片的动态翻动的效果
- 红黑树的介绍和实现(一)[原创]
- C++实现UTF-8编码和Unicode编码互转
- 【HEVC学习与研究】26、HEVC的算数编码实现
- 【HEVC学习与研究】26、HEVC的算数编码实现
- ARM汇编指令集[转]
- CRM下午茶(14)-客户关系管理谁来做
- uoLib - .Net 项目基础类库 基于C#, 可用于.Net Framework 2.0/3.5, 免费下载使用
- 25个最佳企业软件和网络服务(2)-English
- CRM下午茶(15)-客户关系管理实施失败常见原因
- 【原创】Asp编码互转的研究和实现
- CRM下午茶(16)-SNS就是朋友关系管理
- INNODB 热备工具试验与总结
- Wordpress-数据库结构分析
- 集合类-六种常见的集合类
- 解决MySQL出现大量unauthenticated user的问题
- java中取小数点后两位(四种方法)
- Flex与.NET互操作(八):使用FluorineFx网关实现远程访问
- 组策略禁用指定程序