UTF8 to GB2312는 UTF8로 인코딩된 텍스트를 GB로 인코딩된 텍스트로 변환하고, UTF8로 인코딩된 텍스트는 중국어 문자 코드로 변환됩니다. 1. 'UTF에서 GB로---UTF8로 인코딩된 텍스트를 GB로 인코딩된 텍스트로 변환
다음과 같이 코드 코드를 복사합니다.
기능 UTF2GB(UTFStr)
Dig=1에서 len(UTFStr)까지
'UTF8로 인코딩된 텍스트가 %로 시작하면 변환합니다.
mid(UTFStr,Dig,1)=%인 경우
'8보다 큰 UTF8 인코딩된 텍스트는 중국어 문자로 변환됩니다.
len(UTFStr) >= Dig+8이면
GBStr=GBStr & Conv중국어(mid(UTFStr,Dig,9))
파기=파기+8
또 다른
GBStr=GBStr & mid(UTFStr,Dig,1)
종료하면
또 다른
GBStr=GBStr & mid(UTFStr,Dig,1)
종료하면
다음
UTF2GB=GBStr
종료 기능
'UTF8로 인코딩된 텍스트는 중국어 문자로 변환됩니다.
함수 Conv중국어(x)
A=분할(중간(x,2),%)
나는=0
j=0
i=0에서 ubound(A)까지
A(i)=c16to2(A(i))
다음
i=0에서 ubound(A)-1까지
DigS=instr(A(i),0)
유니코드=
j=1 ~ DigS-1의 경우
j=1이면
A(i)=right(A(i),len(A(i))-DigS)
유니코드=유니코드 & A(i)
또 다른
나=나+1
A(i)=right(A(i),len(A(i))-2)
유니코드=유니코드 & A(i)
종료하면
다음
len(c2to16(Unicode))=4이면
Conv중국어=Conv중국어 & chrw(int(&H & c2to16(유니코드)))
또 다른
Conv중국어=Conv중국어 & chr(int(&H & c2to16(유니코드)))
종료하면
다음
종료 기능
'2진수 코드를 16진수 코드로 변환
함수 c2to16(x)
나는=1
i=1부터 len(x)까지 4단계
c2to16=c2to16 & hex(c2to10(mid(x,i,4)))
다음
종료 기능
'2진수 코드를 10진수 코드로 변환
함수 c2to10(x)
c2to10=0
x=0이면 함수를 종료합니다.
나는=0
i= 0에서 len(x) -1까지
mid(x,len(x)-i,1)=1이면 c2to10=c2to10+2^(i)
다음
종료 기능
'16진수 코드를 2진수 코드로 변환
함수 c16to2(x)
나는=0
i=1에서 len(trim(x))까지
tempstr= c10to2(cint(int(&h & mid(x,i,1))))
len(tempstr)<4 동안 수행
임시파=0&tempstr
고리
c16to2=c16to2 & 임시 직원
다음
종료 기능
'10진수 코드를 2진수 코드로 변환
함수 c10to2(x)
mysign=sgn(x)
x=절대값(x)
발굴=1
하다
x<2^DigS이면
나가다
또 다른
디그S=디그S+1
종료하면
고리
임시수=x
나는=0
i=DigS ~ 1 step-1의 경우
임시수>=2^(i-1)이면
임시번호=임시번호-2^(i-1)
c10to2=c10to2 & 1
또 다른
c10to2=c10to2 & 0
종료하면
다음
mysign=-1이면 c10to2=- & c10to2
종료 기능
2. 'GB에서 UTF8로--GB로 인코딩된 텍스트를 UTF8로 인코딩된 텍스트로 변환
다음과 같이 코드 코드를 복사합니다.
UTF8(szInput)에 대한 함수
어두워, 어, szRet
희미한 x
희미한 nAsc, nAsc2, nAsc3
'입력 매개변수가 비어 있으면 함수를 종료합니다.
szInput = 그렇다면
toUTF8 = sz입력
종료 기능
종료 조건
'변환 시작
x = 1의 경우 Len(szInput)으로
'mid 함수를 사용하여 GB로 인코딩된 텍스트를 분할합니다.
wch = 중간(szInput, x, 1)
'ascW 함수를 사용하여 각 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(&U)
또 다른
'GB로 인코딩된 텍스트의 유니코드 문자 코드는 0800 - FFFF 사이의 3바이트 템플릿을 채택합니다.
uch = % & Hex((nAsc / 2 ^ 12) 또는 &HE0) & % & _
Hex((nAsc / 2 ^ 6) 및 &H3F 또는 &H80) & % & _
16진수(nAsc 및 &H3F 또는 &H80)
szRet = szRet(&U)
종료 조건
종료 조건
다음
toUTF8 = szRet
기능 종료
3. 'GB를 유니코드로---GB로 인코딩된 텍스트를 유니코드로 인코딩된 텍스트로 변환
다음과 같이 코드 코드를 복사합니다.
함수 Chinese2unicode(Str)
나 어두워
희미한 Str_one
희미한 문자열_유니코드
if(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& Hex(ascw(Str_one))
Str_unicode=Str_unicode&chr(59)
다음
Chinese2unicode=Str_unicode
종료 기능
4. 'URL 디코딩'
다음과 같이 코드 코드를 복사합니다.
함수 URLDecode(enStr)
희미한 deStr
희미한 c,i,v
deStr=
i=1에서 len(enStr)까지
c=중간(enStr,i,1)
c=%이면
v=eval(&h+Mid(enStr,i+1,2))
v<128이면
deStr=deStr&chr(v)
나는=나+2
또 다른
if isvalidhex(mid(enstr,i,3)) 그러면
if isvalidhex(mid(enstr,i+3,3)) 그러면
v=eval(&h+Mid(enStr,i+1,2)+Mid(enStr,i+4,2))
deStr=deStr&chr(v)
나는=나+5
또 다른
v=eval(&h+Mid(enStr,i+1,2)+cstr(hex(asc(Mid(enStr,i+3,1)))))
deStr=deStr&chr(v)
나=나+3
종료하면
또 다른
destr=파괴&c
종료하면
종료하면
또 다른
c=+이면
deStr=deStr&
또 다른
deStr=deStr&c
종료하면
종료하면
다음
URLDecode=deStr
종료 기능
'유효한 16진수 코드인지 확인
함수 isvalidhex(str)
희미한 c
isvalidhex=true
str=ucase(str)
len(str)<>3이면 isvalidhex=false:exit 함수
if left(str,1)<>% then isvalidhex=false:exit 함수
c=중간(str,2,1)
(((c>=0) 및 (c<=9)) 또는 ((c>=A) 및 (c<=Z)))가 아닌 경우 isvalidhex=false:exit 함수
c=중간(str,3,1)
(((c>=0) 및 (c<=9)) 또는 ((c>=A) 및 (c<=Z)))가 아닌 경우 isvalidhex=false:exit 함수
종료 기능
%>