ASP编码和解码函数详解

用ASP开发的时候遇到一个解码问题。虽然在ASP中使用Request获取编码过URL字符串会自动解码,但是Request.BinaryRead(Request.TotalBytes)取得Post数据时却不会解码,所以只能手动进行解码。
ASP解码函数:

Function URLDecode(enStr)
 dim deStr,strSpecial
 dim c,i,v
  deStr=""
  strSpecial="!""#$%&'()*+,.-_/:;<=>?@[/]^`{|}~%"
  for i=1 to len(enStr)
   c=Mid(enStr,i,1)
   if c="%" then
    v=eval("&h"+Mid(enStr,i+1,2))
    if inStr(strSpecial,chr(v))>0 then
     deStr=deStr&chr(v)
     i=i+2
    else
     v=eval("&h"+ Mid(enStr,i+1,2) + Mid(enStr,i+4,2))
     deStr=deStr & chr(v)
     i=i+5
    end if
   else
    if c="+" then
     deStr=deStr&" "
    else
     deStr=deStr&c
    end if
   end if
  next
  URLDecode=deStr
End function

只是个人爱好,自己研究了一下编码的实现思路,最后自己写了一个编码函数,提供大家参考。注:ASP有内置的编码函数,即是Server.URLEncode。

ASP编码函数:

private Function URLEncoding(vstrIn)
  strReturn = ""
  For i = 1 To Len(vstrIn)
  ThisChr = Mid(vStrIn,i,1)
  If Abs(Asc(ThisChr)) < &HFF Then
  strReturn = strReturn & ThisChr
  Else
  innerCode = Asc(ThisChr)
  If innerCode < 0 Then
  innerCode = innerCode + &H10000
  End If
  Hight8 = (innerCode And &HFF00)/ &HFF
  Low8 = innerCode And &HFF
  strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)
  End If
  Next
  URLEncoding = strReturn
End Function

建议大家在中文编码的时候,还是使用ASP 内置的函数。虽然上面这个编码函数测试过N 遍了,没有发现问题,但是以防万一存在Bug。

以上就是关于ASP编码和解码函数,希望对大家的学习有所帮助。

(0)

相关推荐

  • asp.net下百度的编码和解码

    百度的编码: str = System.Web.HttpUtility.UrlEncode("中文", System.Text.UnicodeEncoding.GetEncoding("GB2312")).ToUpper() 解码 System.Web.HttpUtility.UrlDecode("%C3%CF%CF%DC%BB%E1", System.Text.UnicodeEncoding.GetEncoding("GB2312&q

  • ASP codepage 页面编码使用说明

    指定的代码页特性无效. codepage属性:是指出网页的代码页 如果制作的网页脚本与WEB服务端的默认代码页不同,则必须指明代码页: 复制代码 代码如下: codepage=936 简体中文GBK codepage=950 繁体中文BIG5 codepage=437 美国/加拿大英语 codepage=932 日文 codepage=949 韩文 codepage=866 俄文 codepage=65001 unicode UFT-8 页面编码的使用: 基于vbscript vbscript

  • asp.C#实现图片文件与base64string编码解码

    图片当然是存在那个js文件里面,于是我就打开了flashblocker.js,然后浏览一下,找到下面一句: var flash = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAA......' (小白)<SPAN style="FONT-SIZE: small">这是我第一次认识到base64的用场,记得以前保存网页的时候,总习惯保存为.mht格式,因为这样会把网页中的图片也保存下来,但是一直奇怪为何

  • asp.net URL编码与解码

    例如Url参数字符串中使用key=value键值对这样的形式来传参,键值对之间以&符号分隔,如/s?q=abc&ie=utf-8.如果你的value字符串中包含了=或者&,那么势必会造成接收Url的服务器解析错误,因此必须将引起歧义的&和=符号进行转义,也就是对其进行编码. 又如,Url的编码格式采用的是ASCII码,而不是Unicode,这也就是说你不能在Url中包含任何非ASCII字符,例如中文.否则如果客户端浏览器和服务端浏览器支持的字符集不同的情况下,中文可能会造成

  • Asp编码优化技巧

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

  • asp.net 页面编码常见问题小结

    如果要为整个项目设置页面编码,那么就可以在 Web.config 文件中添加一个 Globalization 属性,然后设置它的 fileEncoding.requestEncoding,和 responseEncoding 特性: <configuration> <system.web> <globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncodi

  • ASP中Utf-8与Gb2312编码转换乱码问题的解决方法 页面编码声明

    出现这样的问题是当你浏览UTF-8编码的时候,服务器默认用UTF-8的引擎来输出html,当你用再浏览GB2312的页面时,它还是用UTF-8来输出本应是GB2312编码的页面所以会乱码. 为了这个问题烦了我一个早上,终于的蓝色理想上得到解决. 首先让我们来了解一下Session对象提供了四个属性. 1.CodePage 读/写.整型. 定义用于在浏览器中显示页内容的代码页(Code Page).代码页是字符集的数字值,不同的语言和场所可能使用不同的代码页.例如,ANSI代码页 1252用于美国

  • java基于AspectJ(面向切面编程)编码示例分享

    一.基本概念 AspectJ是一种面向切面程序设计的基于Java 的实现.它向 Java 中加入了连接点(Join Point)这个新概念,其实它也只是现存的一个 Java概念的名称而已.它向 Java 语言中加入少许新结构:切点(pointcut).通知(Advice).类型间声明(Inter-type declaration)和方面(Aspect).切点和通知动态地影响程序流程,类型间声明则是静态的影响程序的类等级结构,而切面则是对所有这些新结构的封装. 基于切面.连接点.切点.通知的概念如

  • asp页面和Asp.net页面传中文参数UrlEncode编码以及接收解码

    举例:asp.net用Get方式传输的URL为:"WebPage.asp?str="+HttpUtility.UrlEncode(str) ,解码方式为HttpUtility.UrlDecode(Request.QueryString["str"].ToString().Trim()) asp的Get方式传送为"webPage.aspx?str="+server.urlencode(str) 两种编码不统一 解决方案:在asp使用Get方式传送&

  • ASP编码和解码函数详解

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

  • Python中json格式数据的编码与解码方法详解

    本文实例讲述了Python中json格式数据的编码与解码方法.分享给大家供大家参考,具体如下: python从2.6版本开始内置了json数据格式的处理方法. 1.json格式数据编码 在python中,json数据格式编码使用json.dumps方法. #!/usr/bin/env python #coding=utf8 import json users = [{'name': 'tom', 'age': 22}, {'name': 'anny', 'age': 18}] #元组对象也可以

  • VC中BASE64编码和解码使用详解

    BASE64可以用来将binary的字节序列数据编码成ASCII字符序列构成的文本.完整的BASE64定义可见 RFC1421和 RFC2045.编码后的数据比原始数据略长,为原来的4/3.在电子邮件中,根据RFC822规定,每76个字符,还需要加上一个回车换行. 转换的时候,将三个byte的数据,先后放入一个24bit的缓冲区中,先来的byte占高位.数据不足3byte的话,于缓冲区中剩下的Bit用0补足.然后,每次取出6个bit,按照其值选择ABCDEFGHIJKLMNOPQRSTUVWXY

  • PHP 实现 JSON 数据的编码和解码操作详解

    本文实例讲述了PHP 实现 JSON 数据的编码和解码操作.分享给大家供大家参考,具体如下: JSON 的使用场景: 数据表一个字段需要记录多个信息,如记录关于用户的其他信息 数据传输,如:API接口返回值.Ajax中实现异步加载 配置文件,如 composer.json 包管理配置文件 在 PHP 中使用 JSON: JSON 使用最频繁的两个操作就是编码和解析数据,PHP 官方提供了以下 2 个函数实现这两个操作: json_encode() json_decode() Encoding a

  • JS 实现Base64编码与解码实例详解

    Js实现Base64编码与解码 Base64其实是一种简单的置换加密方式,但是BASE64的用处往往并不是为了防止信息泄露,而且为了方便传输,进过BASE64编码后的信息会比原始信息长,大概是4/3倍. Base64是一种基于64个可打印字符来表示二进制数据的表示方法.由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符. Base64常用于在通常处理文本数据的场合,表示.传输.存储一些二进制数据.包括MIME的email,email via MIME, 在XML中存储复杂数据.

  • ASP 中 DateDiff 函数详解 主要实现两日期加减操作

    ASP 中 DateDiff 函数详解DateDiff 函数 描述  返回两个日期之间的时间间隔.  语法  DateDiff(interval, date1, date2 [,firstdayofweek][, firstweekofyear]])  DateDiff 函数的语法有以下参数: 参数 描述  interval 必选.字符串表达式,表示用于计算 date1 和 date2 之间的时间间隔.有关数值,请参阅"设置"部分.  date1, date2 必选.日期表达式.用于计

  • js正则表达式常用函数详解(续)

    正则表达式对象的方法 1.test,返回一个 Boolean 值,它指出在被查找的字符串中是否存在模式.如果存在则返回 true,否则就返回 false. 2.exec,用正则表达式模式在字符串中运行查找,并返回包含该查找结果的一个数组. 3.compile,把正则表达式编译为内部格式,从而执行得更快. 正则表达式对象的属性 1.source,返回正则表达式模式的文本的复本.只读. 2.lastIndex,返回字符位置,它是被查找字符串中下一次成功匹配的开始位置. 3.input ($_),返回

  • 基于python内置函数与匿名函数详解

    内置函数 Built-in Functions abs() dict() help() min() setattr() all() dir() hex() next() slice() any() divmod() id() object() sorted() ascii() enumerate() input() oct() staticmethod() bin() eval() int() open() str() bool() exec() isinstance() pow() super

  • PHP封装curl的调用接口及常用函数详解

    如下所示: <?php /** * @desc 封装curl的调用接口,post的请求方式 */ function doCurlPostRequest($url, $requestString, $timeout = 5) { if($url == "" || $requestString == "" || $timeout <= 0){ return false; } $con = curl_init((string)$url); curl_setop

  • PHP之header函数详解

    PHP的header函数是最常用的函数之一,用于向客户端发送HTTP头信息. 通过的用法如设置编码.发送HTTP状态值以及重定向. php header utf8 : header("Content-type: text/html; charset=utf-8″); php header 404 : header("HTTP/1.0 404 Not Found"); 上述两个例子分别是设置UTF8编码和发送404状态. header重定向: header('Location:

随机推荐