ASP實(shí)現(xiàn)UFT8與GB2312轉(zhuǎn)換的代碼

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

在ASP開發(fā)中,如果表單提交的時(shí)候,表單頁是UFT8編碼,而接收頁確實(shí)GB2312編碼或者反之的情況,如果參數(shù)值是中文,就會出現(xiàn)獲取到的參數(shù)值是亂碼的問題。下面有一個(gè)很不錯(cuò)的函數(shù)來解決這問題:

在ASP開發(fā)中,如果表單提交的時(shí)候,表單頁是UFT8編碼,而接收頁確實(shí)GB2312編碼或者反之的情況,如果參數(shù)值是中文,就會出現(xiàn)獲取到的參數(shù)值是亂碼的問題。下面有一個(gè)很不錯(cuò)的函數(shù)來解決這問題:

ASP/VB Code復(fù)制內(nèi)容到剪貼板
  1. 'URL地址解碼,用于utf-8與GB2312轉(zhuǎn)中文字符通用  
  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))

關(guān)鍵詞:ASP編碼地址編碼

贊助商鏈接: