UTF8 เป็น GB2312 แปลงข้อความที่เข้ารหัส UTF8 เป็นข้อความที่เข้ารหัส GB และข้อความที่เข้ารหัส UTF8 จะถูกแปลงเป็นรหัสตัวอักษรจีน เพื่อนๆ ที่ต้องการความช่วยเหลือสามารถอ้างอิงถึงข้อความนั้นได้ 1. 'UTF เป็น GB --- แปลงข้อความที่เข้ารหัส UTF8 เป็นข้อความที่เข้ารหัส GB
คัดลอกรหัสรหัสดังต่อไปนี้:
ฟังก์ชั่น UTF2GB(UTFStr)
สำหรับ Dig=1 ถึง len(UTFStr)
'แปลงถ้าข้อความที่เข้ารหัส UTF8 เริ่มต้นด้วย %
ถ้า mid(UTFStr,Dig,1)=% แล้ว
'ข้อความที่เข้ารหัส UTF8 ที่มากกว่า 8 จะถูกแปลงเป็นตัวอักษรจีน
ถ้า len(UTFStr) >= Dig+8 แล้ว
GBStr=GBStr & ConvChinese(กลาง(UTFStr,ขุด,9))
ขุด=ขุด+8
อื่น
GBStr=GBStr & กลาง(UTFStr,ขุด,1)
สิ้นสุดถ้า
อื่น
GBStr=GBStr & กลาง(UTFStr,ขุด,1)
สิ้นสุดถ้า
ต่อไป
UTF2GB=GBStr
ฟังก์ชั่นสิ้นสุด
'ข้อความที่เข้ารหัส UTF8 จะถูกแปลงเป็นตัวอักษรจีน
ฟังก์ชั่น Conv Chinese(x)
A=แยก(กลาง(x,2),%)
ผม=0
เจ=0
สำหรับ i=0 ถึง ubound(A)
ก(i)=c16to2(ก(i))
ต่อไป
สำหรับ i=0 ถึง ubound(A)-1
DigS=คำแนะนำ(A(i),0)
ยูนิโค้ด=
สำหรับ j=1 ถึง DigS-1
ถ้า j=1 แล้ว
A(i)=ขวา(A(i),เลน(A(i))-DigS)
Unicode=ยูนิโค้ด & A(i)
อื่น
ฉัน=ฉัน+1
A(i)=ขวา(A(i),เลน(A(i))-2)
Unicode=ยูนิโค้ด & A(i)
สิ้นสุดถ้า
ต่อไป
ถ้า len(c2to16(Unicode))=4 แล้ว
ConvChinese=ConvChinese & chrw(int(&H & c2to16(Unicode)))
อื่น
ConvChinese=ConvChinese & chr(int(&H & c2to16(Unicode)))
สิ้นสุดถ้า
ต่อไป
ฟังก์ชั่นสิ้นสุด
'แปลงรหัสไบนารี่เป็นรหัสฐานสิบหก'
ฟังก์ชั่น c2to16(x)
ผม=1
สำหรับ i=1 ถึง len(x) ขั้นตอนที่ 4
c2to16=c2to16 & ฐานสิบหก(c2to10(กลาง(x,i,4)))
ต่อไป
ฟังก์ชั่นสิ้นสุด
'แปลงรหัสไบนารี่เป็นรหัสทศนิยม
ฟังก์ชั่น c2to10(x)
c2to10=0
ถ้า x=0 ก็จะออกจากฟังก์ชัน
ผม=0
สำหรับ i= 0 ถึง len(x) -1
ถ้ากลาง(x,len(x)-i,1)=1 แล้ว c2to10=c2to10+2^(i)
ต่อไป
ฟังก์ชั่นสิ้นสุด
'แปลงรหัสฐานสิบหกเป็นรหัสไบนารี'
ฟังก์ชั่น c16to2(x)
ผม=0
สำหรับ i=1 ถึง len(trim(x))
tempstr= c10to2(cint(int(&h & กลาง(x,i,1))))
ทำในขณะที่ len(tempstr)<4
tempstr=0&tempstr
วนซ้ำ
c16to2=c16to2 & tempstr
ต่อไป
ฟังก์ชั่นสิ้นสุด
'แปลงรหัสทศนิยมให้เป็นรหัสไบนารี่'
ฟังก์ชั่น c10to2(x)
mysign=sgn(x)
x=หน้าท้อง(x)
หลัก=1
ทำ
ถ้า x<2^DigS แล้ว
ออกทำ
อื่น
DigS=DigS+1
สิ้นสุดถ้า
วนซ้ำ
เวลา=x
ผม=0
สำหรับ i=DigS ถึง 1 ขั้นตอน-1
ถ้า tempnum>=2^(i-1) แล้ว
tempnum=tempnum-2^(i-1)
c10to2=c10to2 & 1
อื่น
c10to2=c10to2 & 0
สิ้นสุดถ้า
ต่อไป
ถ้า mysign=-1 ดังนั้น c10to2=- & c10to2
ฟังก์ชั่นสิ้นสุด
2. 'GB เป็น UTF8 - แปลงข้อความที่เข้ารหัส GB เป็นข้อความที่เข้ารหัส UTF8
คัดลอกรหัสรหัสดังต่อไปนี้:
ฟังก์ชั่นเป็นUTF8(szInput)
ติ่มซำ uch szRet
ดิมเอ็กซ์
หรี่ nAsc, nAsc2, nAsc3
'หากพารามิเตอร์อินพุตว่างเปล่า ให้ออกจากฟังก์ชัน
ถ้า szInput = จากนั้น
toUTF8 = szInput
ออกจากฟังก์ชัน
สิ้นสุดถ้า
'เริ่มต้นการแปลง
สำหรับ x = 1 ถึง Len (szInput)
'ใช้ฟังก์ชันกลางเพื่อแยกข้อความที่เข้ารหัส GB
wch = กลาง(szInput, x, 1)
'ใช้ฟังก์ชัน ascW เพื่อส่งคืนโค้ดอักขระ Unicode ของข้อความที่เข้ารหัสแต่ละ GB
'หมายเหตุ: ฟังก์ชัน asc จะส่งคืนโค้ดอักขระ ANSI โปรดใส่ใจกับความแตกต่าง
nAsc = AscW(wch)
ถ้า nAsc < 0 ดังนั้น nAsc = nAsc + 65536
ถ้า (nAsc และ &HFF80) = 0 แล้ว
szRet = szRet & wch
อื่น
ถ้า (nAsc และ &HF000) = 0 แล้ว
uch = % & Hex(((nAsc / 2 ^ 6)) หรือ &HC0) & Hex(nAsc และ &H3F หรือ &H80)
szRet = szRet&uch
อื่น
'รหัสอักขระ Unicode ของข้อความที่เข้ารหัส GB ใช้เทมเพลตสามไบต์ระหว่าง 0800 - FFFF
uch = % & Hex((nAsc / 2 ^ 12) หรือ &HE0) & % & _
Hex((nAsc / 2 ^ 6) และ &H3F หรือ &H80) & % & _
ฐานสิบหก (nAsc และ &H3F หรือ &H80)
szRet = szRet&uch
สิ้นสุดถ้า
สิ้นสุดถ้า
ต่อไป
toUTF8 = szRet
ฟังก์ชันสิ้นสุด
3. 'GB เป็น Unicode --- แปลงข้อความที่เข้ารหัส GB เป็นข้อความที่เข้ารหัส Unicode
คัดลอกรหัสรหัสดังต่อไปนี้:
ฟังก์ชั่น chinese2unicode (Str)
สลัวฉัน
Str_one สลัว
dimStr_unicode
ถ้า(isnull(Str)) แล้ว
ฟังก์ชั่นทางออก
สิ้นสุดถ้า
สำหรับ i=1 ถึง len(Str)
Str_one=กลาง(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& เลขฐานสิบหก(ascw(Str_one))
Str_unicode=Str_unicode&chr(59)
ต่อไป
chinese2unicode=Str_unicode
ฟังก์ชั่นสิ้นสุด
4. 'การถอดรหัส URL
คัดลอกรหัสรหัสดังต่อไปนี้:
ฟังก์ชัน URLDecode(enStr)
สลัว deStr
สลัว c, i, v
ดีสเตร=
สำหรับ i=1 ถึง len(enStr)
c=กลาง(enStr,i,1)
ถ้า c=% แล้ว
v=eval(&h+กลาง(enStr,i+1,2))
ถ้า v<128 แล้ว
deStr=deStr&chr(v)
ผม=ผม+2
อื่น
ถ้า isvalidhex(mid(enstr,i,3)) แล้ว
ถ้า isvalidhex(mid(enstr,i+3,3)) แล้ว
v=eval(&h+กลาง(enStr,i+1,2)+กลาง(enStr,i+4,2))
deStr=deStr&chr(v)
ผม=ผม+5
อื่น
v=eval(&h+กลาง(enStr,i+1,2)+cstr(hex(asc(กลาง(enStr,i+3,1)))))
deStr=deStr&chr(v)
ผม=ผม+3
สิ้นสุดถ้า
อื่น
destr=destr&c
สิ้นสุดถ้า
สิ้นสุดถ้า
อื่น
ถ้า c=+ แล้ว
deStr=deStr&
อื่น
deStr=deStr&c
สิ้นสุดถ้า
สิ้นสุดถ้า
ต่อไป
URLDecode=deStr
ฟังก์ชั่นสิ้นสุด
'ตรวจสอบว่าเป็นรหัสฐานสิบหกที่ถูกต้องหรือไม่
ฟังก์ชัน isvalidhex(str)
สลัวค
isvalidhex=จริง
str=ucase(str)
ถ้า len(str)<>3 ดังนั้นฟังก์ชัน isvalidhex=false:exit
ถ้า left(str,1)<>% ดังนั้นฟังก์ชัน isvalidhex=false:exit
c=กลาง(str,2,1)
ถ้าไม่ใช่ (((c>=0) และ (c<=9)) หรือ ((c>=A) และ (c<=Z))) ดังนั้น isvalidhex=false:exit function
c=กลาง(str,3,1)
ถ้าไม่ใช่ (((c>=0) และ (c<=9)) หรือ ((c>=A) และ (c<=Z))) ดังนั้น isvalidhex=false:exit function
ฟังก์ชั่นสิ้นสุด
-