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)

相关推荐

  • Asp 编码互转的研究和实现代码

    文章背景: 某天,我的一个同事给我看了CSDN上面的一篇关于编程语言排行榜的文章,里面我看到VB还是排名很不错的,我就说,asp(vbscript)确实挺不错.结果他就反驳我,说asp不好,很多东西很难实现.我说比如哪些东西?我开发了几年的asp都没有发现很难实现的东西,除非是属于非脚本语言范围内的,比如多线程的应用(当然,asp也可以模拟实现多线程任务)等.结果他说了什么多线程,还有编码转换等,说自己曾经为了转换编码费了很大精力却没有成功过,所以觉得asp太弱.听到这样的话,我们就知道他的编程

  • 对于ASP编码问题的深入研究与最终解决方案

    ASP乱码确实棘手,这个说明比较权威.有待研究.哪的资料都不如官方资料权威.今天总算从MSDN中择出了ASP编码问题的解决方案.... ASP乱码确实棘手,这个说明比较权威.有待研究. 哪的资料都不如官方资料权威.今天总算从MSDN中择出了ASP编码问题的解决方案. 下面是MSDN中的一段话. Setting @CODEPAGE explicitly affects literal strings in a single response. Response.CodePage affects d

  • ASP编码和解码函数详解

    用ASP开发的时候遇到一个解码问题.虽然在ASP中使用Request获取编码过URL字符串会自动解码,但是Request.BinaryRead(Request.TotalBytes)取得Post数据时却不会解码,所以只能手动进行解码. ASP解码函数: Function URLDecode(enStr) dim deStr,strSpecial dim c,i,v deStr="" strSpecial="!""#$%&'()*+,.-_/:;&l

  • ASP编码必备的8条原则

    ASP是Active Server Page的缩写,意为"动态服务器页面".ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单.方便的编程工具.在这里仅就代码优化进行一些简单讨论. 1.声明VBScript变量 在ASP中,对vbscript提供了强劲的支持,能够无缝集成vbscript的函数.方法,这样给扩展ASP的现有功能提供了很大便利.由于ASP中已经模糊了变量类型的概念,所以,在进行ASP与vbscript交互的过程中,很多程序员也

  • 详谈java编码互转(application/x-www-form-urlencoded)

    本质上来说,java.net.UrlEncoder适用于将 String 转换为 application/x-www-form-urlencoded MIME 格式的静态方法 时 ,使用 但!一般情况下,web应用中,当你的服务器,页面编码,请求时编码都已经修改为 utf-8后,依然乱码时,此时则应试着用下方所写到的方法 使用URLDecoder将所乱码的数据进行解码, 而在此处简单说一下乱码的场景和简单转换时的执行原理: 首先,form表单提示数据时,默认Content-type:为 appl

  • Asp编码优化技巧

    8条Asp编码优化技巧: 1.声明VBScript变量      在ASP中,对vbscript提供了强劲的支持,能够无缝集成vbscript的函数.方法,这样给扩展ASP的现有功能提供了很大便利.由于ASP中已经模糊了变量类型的概念,所以,在进行ASP与vbscript交互的过程中,很多程序员也惯于不声明vbscript的变量,这样加重了服务器的解析负担,进而影响服务器的响应请求速度. 鉴于此,我们可以象在VB中强制用户进行变量声明一样在vbscript中强制用户进行变量声明.实现方法是在AS

  • emoji表情与unicode编码互转的实现(JS,JAVA,C#)

    前几天刚好有需求要把emoji对应的Unicode编码转换成文字,比如1f601对应的这个笑脸

  • ASP.NET Core 实现基本认证的示例代码

    HTTP基本认证 在HTTP中,HTTP基本认证(Basic Authentication)是一种允许网页浏览器或其他客户端程序以(用户名:口令) 请求资源的身份验证方式,不要求cookie,session identifier.login page等标记或载体. - 所有浏览器据支持HTTP基本认证方式 - 基本身证原理不保证传输凭证的安全性,仅被based64编码,并没有encrypted或者hashed,一般部署在客户端和服务端互信的网络,在公网中应用BA认证通常与https结合 http

  • ASP.NET MVC4异步聊天室的示例代码

    本文介绍了ASP.NET MVC4异步聊天室的示例代码,分享给大家,具体如下: 类图: Domain层 IChatRoom.cs using System; using System.Collections.Generic; namespace MvcAsyncChat.Domain { public interface IChatRoom { void AddMessage(string message); void AddParticipant(string name); void GetM

  • ASP.NET中画图形验证码的实现代码

    本文给大家分享一段asp.net代码实现画图形验证码功能,代码简单易懂,具体代码如下所示: context.Response.ContentType = "image/jpeg"; //生成随机的中文验证码 string yzm = "人口手大小多少上中下男女天地会反清复明杨中科小宝双儿命名空间语现在明天来多个的我山东河北南固安北京南昌东海西安是沙河高教园学" + "木禾上下土个八入大天人火文六七儿九无口日中了子门月不开四五目耳头米见白田电也长山出飞马鸟云

随机推荐