ASP实现UFT8与GB2312转换的代码

2010-09-13 10:22:57来源:作者:

在ASP开发中,如果表单提交的时候,表单页是UFT8编码,而接收页确实GB2312编码或者反之的情况,如果参数值是中文,就会出现获取到的参数值是乱码的问题。下面有一个很不错的函数来解决这问题:

在ASP开发中,如果表单提交的时候,表单页是UFT8编码,而接收页确实GB2312编码或者反之的情况,如果参数值是中文,就会出现获取到的参数值是乱码的问题。下面有一个很不错的函数来解决这问题:

ASP/VB Code复制内容到剪贴板
  1. 'URL地址解码,用于utf-8与GB2312转中文字符通用  
  2. Function DecodeURI(ByVal s)    
  3.     s = UnEscape(s)    
  4.     Dim reg, cs    
  5.     cs = "GBK"    
  6.     Set reg = New RegExp    
  7.     reg.Pattern = "^(?:[\x00-\x7f]|[\xfc-\xff][\x80-\xbf]{5}|[\xf8-\xfb][\x80-\xbf]{4}|[\xf0-\xf7][\x80-\xbf]{3}|[\xe0-\xef][\x80-\xbf]{2}|[\xc0-\xdf][\x80-\xbf])+$"    
  8.     If reg.Test(s) Then cs = "UTF-8"    
  9.     Set reg = Nothing    
  10.     Dim sm    
  11.     Set sm = CreateObject("ADODB.Stream")    
  12.     With sm    
  13.         .Type = 2    
  14.         .Mode = 3    
  15.         .Open    
  16.         .CharSet = "iso-8859-1"    
  17.         .WriteText s    
  18.         .Position = 0    
  19.         .CharSet = cs    
  20.         DecodeURI = .ReadText(-1)    
  21.         .Close    
  22.     End With    
  23.     Set sm = Nothing    
  24. End Function  

在接收页可以这样得到正确的中文字符:
username=DecodeURI(server.URLEncode(username))

赞助商链接: