麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > ASP > 正文

ASP關于編碼的幾個有用的函數小結(utf8)

2024-05-04 11:08:16
字體:
來源:轉載
供稿:網友
UTF8轉GB2312將UTF8編碼文字轉換為GB編碼文字,UTF8編碼文字將轉換為漢字的代碼,需要的朋友可以參考下。
 
 
 
1、'UTF轉GB---將UTF8編碼文字轉換為GB編碼文字 
復制代碼代碼如下:

function UTF2GB(UTFStr) 

for Dig=1 to len(UTFStr) 
'如果UTF8編碼文字以%開頭則進行轉換 
if mid(UTFStr,Dig,1)="%" then 
'UTF8編碼文字大于8則轉換為漢字 
if len(UTFStr) >= Dig+8 then 
GBStr=GBStr & ConvChinese(mid(UTFStr,Dig,9)) 
Dig=Dig+8 
else 
GBStr=GBStr & mid(UTFStr,Dig,1) 
end if 
else 
GBStr=GBStr & mid(UTFStr,Dig,1) 
end if 
next 
UTF2GB=GBStr 
end function 

'UTF8編碼文字將轉換為漢字 
function ConvChinese(x) 
A=split(mid(x,2),"%") 
i=0 
j=0 
for i=0 to ubound(A) 
A(i)=c16to2(A(i)) 
next 
for i=0 to ubound(A)-1 
DigS=instr(A(i),"0") 
Unicode="" 
for j=1 to DigS-1 
if j=1 then 
A(i)=right(A(i),len(A(i))-DigS) 
Unicode=Unicode & A(i) 
else 
i=i+1 
A(i)=right(A(i),len(A(i))-2) 
Unicode=Unicode & A(i) 
end if 
next 

if len(c2to16(Unicode))=4 then 
ConvChinese=ConvChinese & chrw(int("&H" & c2to16(Unicode))) 
else 
ConvChinese=ConvChinese & chr(int("&H" & c2to16(Unicode))) 
end if 
next 
end function 

'二進制代碼轉換為十六進制代碼 
function c2to16(x) 
i=1 
for i=1 to len(x) step 4 
c2to16=c2to16 & hex(c2to10(mid(x,i,4))) 
next 
end function 

'二進制代碼轉換為十進制代碼 
function c2to10(x) 
c2to10=0 
if x="0" then exit function 
i=0 
for i= 0 to len(x) -1 
if mid(x,len(x)-i,1)="1" then c2to10=c2to10+2^(i) 
next 
end function 

'十六進制代碼轉換為二進制代碼 
function c16to2(x) 
i=0 
for i=1 to len(trim(x)) 
tempstr= c10to2(cint(int("&h" & mid(x,i,1)))) 
do while len(tempstr)<4 
tempstr="0" & tempstr 
loop 
c16to2=c16to2 & tempstr 
next 
end function 

'十進制代碼轉換為二進制代碼 
function c10to2(x) 
mysign=sgn(x) 
x=abs(x) 
DigS=1 
do 
if x<2^DigS then 
exit do 
else 
DigS=DigS+1 
end if 
loop 
tempnum=x 

i=0 
for i=DigS to 1 step-1 
if tempnum>=2^(i-1) then 
tempnum=tempnum-2^(i-1) 
c10to2=c10to2 & "1" 
else 
c10to2=c10to2 & "0" 
end if 
next 
if mysign=-1 then c10to2="-" & c10to2 
end function 

2、'GB轉UTF8--將GB編碼文字轉換為UTF8編碼文字 
復制代碼代碼如下:

Function toUTF8(szInput) 
Dim wch, uch, szRet 
Dim x 
Dim nAsc, nAsc2, nAsc3 
'如果輸入參數為空,則退出函數 
If szInput = "" Then 
toUTF8 = szInput 
Exit Function 
End If 
'開始轉換 
For x = 1 To Len(szInput) 
'利用mid函數分拆GB編碼文字 
wch = Mid(szInput, x, 1) 
'利用ascW函數返回每一個GB編碼文字的Unicode字符代碼 
'注:asc函數返回的是ANSI 字符代碼,注意區別 
nAsc = AscW(wch) 
If nAsc < 0 Then nAsc = nAsc + 65536 

If (nAsc And &HFF80) = 0 Then 
szRet = szRet & wch 
Else 
If (nAsc And &HF000) = 0 Then 
uch = "%" & Hex(((nAsc / 2 ^ 6)) Or &HC0) & Hex(nAsc And &H3F Or &H80) 
szRet = szRet & uch 
Else 
'GB編碼文字的Unicode字符代碼在0800 - FFFF之間采用三字節模版 
uch = "%" & Hex((nAsc / 2 ^ 12) Or &HE0) & "%" & _ 
Hex((nAsc / 2 ^ 6) And &H3F Or &H80) & "%" & _ 
Hex(nAsc And &H3F Or &H80) 
szRet = szRet & uch 
End If 
End If 
Next 

toUTF8 = szRet 
End Function 

3、'GB轉unicode---將GB編碼文字轉換為unicode編碼文字 
復制代碼代碼如下:

function chinese2unicode(Str) 
dim i 
dim Str_one 
dim Str_unicode 
if(isnull(Str)) then 
exit function 
end if 
for i=1 to len(Str) 
Str_one=Mid(Str,i,1) 
Str_unicode=Str_unicode&chr(38) 
Str_unicode=Str_unicode&chr(35) 
Str_unicode=Str_unicode&chr(120) 
Str_unicode=Str_unicode& Hex(ascw(Str_one)) 
Str_unicode=Str_unicode&chr(59) 
next 
chinese2unicode=Str_unicode 
end function 

4、'URL解碼 
復制代碼代碼如下:

Function URLDecode(enStr) 
dim deStr 
dim c,i,v 
deStr="" 
for i=1 to len(enStr) 
c=Mid(enStr,i,1) 
if c="%" then 
v=eval("&h"+Mid(enStr,i+1,2)) 
if v<128 then 
deStr=deStr&chr(v) 
i=i+2 
else 
if isvalidhex(mid(enstr,i,3)) then 
if isvalidhex(mid(enstr,i+3,3)) then 
v=eval("&h"+Mid(enStr,i+1,2)+Mid(enStr,i+4,2)) 
deStr=deStr&chr(v) 
i=i+5 
else 
v=eval("&h"+Mid(enStr,i+1,2)+cstr(hex(asc(Mid(enStr,i+3,1))))) 
deStr=deStr&chr(v) 
i=i+3 
end if 
else 
destr=destr&c 
end if 
end if 
else 
if c="+" then 
deStr=deStr&" " 
else 
deStr=deStr&c 
end if 
end if 
next 
URLDecode=deStr 
end function 

'判斷是否為有效的十六進制代碼 
function isvalidhex(str) 
dim c 
isvalidhex=true 
str=ucase(str) 
if len(str)<>3 then isvalidhex=false:exit function 
if left(str,1)<>"%" then isvalidhex=false:exit function 
c=mid(str,2,1) 
if not (((c>="0") and (c<="9")) or ((c>="A") and (c<="Z"))) then isvalidhex=false:exit function 
c=mid(str,3,1) 
if not (((c>="0") and (c<="9")) or ((c>="A") and (c<="Z"))) then isvalidhex=false:exit function 
end function 
%> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品久久久久久久不卡 | 中文字幕在线观看视频一区 | 一级电影在线观看 | 91麻豆精品国产91久久久更新资源速度超快 | 特级无码毛片免费视频尤物 | 亚洲小视频 | 久久福利国产 | 精品国产欧美一区二区 | 久草在线手机视频 | 久草在线视频中文 | 成人男女视频 | 91懂色 | 爱操影视 | 一夜新娘第三季免费观看 | 精品国产三级a | 91精品国产综合久久婷婷香 | 国产精品成人亚洲一区二区 | 91成人免费在线观看 | 色污视频 | 毛片免费在线观看视频 | 欧美一级免费在线观看 | 男人久久天堂 | 精品久久久久久国产 | 国产精品视频一区二区三区四区五区 | 国产人成免费爽爽爽视频 | 福利在线小视频 | 免费看黄色一级大片 | 娇妻被各种姿势c到高潮小说 | 激情久久一区二区 | 亚洲码无人客一区二区三区 | 激情大乳女做爰办公室韩国 | 欧美一级做一级爱a做片性 久久久资源网 | 国产精品久久久久久模特 | 日本在线视 | 日韩一级成人 | 成人免费av在线播放 | 369看片你懂的小视频在线观看 | 国产一区二区亚洲 | 国产乱子视频 | 久久久经典视频 | 久久不雅视频 |