참조 문서 : http://www.linuxforum.net/books/utf-8-unicode.html
코드는 다음과 같습니다.
===========================================
코드 사본은 다음과 같습니다.
<scriptLanguage = "vbscript">
'http://www.linuxforum.net/books/utf-8-unicode.html
publicfunctionutf8encodechar (z)
DIMC : C = ASCW (z) '유니 코드 인코딩을 얻습니다
ifc> 0andc <256then'asc 인코딩은 직접 반환됩니다
utf8encodechar = z
종료 기능
endif
ifc <0thenc = c+& h10000 & 'vbscript의 정수 오버플로, 플러스
Dimk : K = Clng (C) '코드를 백업하고 판단 후 사용하십시오.
DIMB ()
디미 : i = 0
Whilec> & H0 & '인코딩을 6 비트 그룹으로 저장하고 그룹을 바이트 배열 B로 저장하십시오.
remimpreserveb (i)
B (I) = CBYTE (CACT & H3F &)
C = C/& H40 &
i = i+1
향하게 하다
ifubound (b)> 0then''ms group을 제외하고는 모두 6 비트 그룹이 분리되어 있으면 모든 바이너리 10000000이 추가됩니다.
fori = 0toubound (b) -1
b (i) = b (i)+& H80
다음
endif
i = ubound (b) '문자의 유니 코드 인코딩 범위에 따라 가장 높은 그룹을 접두사
ifk <= clng (& h7f &)
b (i) = b (i) +0
elseifk <= clng (& h7ff &)
b (i) = b (i)+& hc0
elseifk <= clng (& hffff &)
b (i) = b (i)+& he0
elseifk <= clng (& h1fffff &)
b (i) = b (i)+& hf0
elseifk <= clng (& h3fffff &)
b (i) = b (i)+& hf8
또 다른
b (i) = b (i)+& hfc
endif
utf8encodechar = ""
fori = ubound (b) to0step-1 '패킷을 URL 인코딩으로 변환합니다
utf8encodechar = utf8encodechar & "%"& right ( "00"& hex (b (i)), 2)
다음
Eraseb
최종 기능 장애
publicfunctionutf8odestring (s)
Dimi, L, C : L = Len (S)
fori = 1tol
UTF8ENCODESTRING = utf8Encodestring & utf8encodechar (Mid (S, I, 1))
다음
최종 기능 장애
msgboxutf8 encodestring ( "听听听听听听")
</스크립트>
테스트 방법 :
http://www.google.com/search?hl=zh-cn&newwindow=1&rls=gglg%2CGGLG%3A2006-15%2CGGLG%3AZH-CN&q=your 코드
코드 사본은 다음과 같습니다.
FunctionRevertutf8 (Szinput)
{
varx, wch, wch1, wch2, uch = "", szret = "";
for (x = 0; x <szinput.length; x ++)
{
if (szinput.charat (x) == "%")
{
wch = parseint (szinput.charat (++ x)+szinput.charat (++ x), 16);
if (! wch) {break;}
if (! (wch & 0x80))
{
WCH = WCH;
}
elseif (! (wch & 0x20))
{
x ++;
wch1 = parseint (szinput.charat (++ x)+szinput.charat (++ x), 16);