参照ドキュメント: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) 'unicodeエンコードを取得します
ifc> 0andc <256then'ascエンコードは直接戻ります
UTF8ENCODECHAR = Z
exitFunction
endif
ifc <0thenc = c+&h10000& 'vbscriptの整数オーバーフローなど
dimk:k = clng(c) 'コードをバックアップし、判断後に使用します
dimb()
ディミ:i = 0
whilec>&h0& 'エンコードを6ビットグループに保存し、グループをバイト配列Bに保存します
RedimpreServeB(i)
b(i)= cbyte(cand&h3f&)
c = c/&h40&
i = i+1
ウェンド
Ifubound(b)> 0then'は、最高のグループを除き、すべてのバイナリ10000000が追加されていることを除いて、複数の6ビットグループが分離されている場合。
fori = 0toubound(b)-1
b(i)= b(i)+&h80
次
endif
i = ubound(b) '文字のユニコードエンコーディング範囲に応じて最高のグループをプレフィックス
ifk <= clng(&h7f&)then
b(i)= b(i)+0
elseifk <= clng(&h7ff&)then
b(i)= b(i)+&hc0
elseifk <= clng(&hffff&)then
b(i)= b(i)+&he0
elseifk <= clng(&h1fffff&)then
b(i)= b(i)+&hf0
elseifk <= clng(&h3fffff&)then
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
エンド機能
publicfunctionutf8encodestring(s)
ディミ、L、C:L = len(s)
fori = 1tol
UTF8ENCODESTRING = UTF8ENCODESTRING&UTF8ENCODECHAR(MID(S、I、1))
次
エンド機能
msgboxutf8encodestring( "听听听听听听")
</script>
テスト方法:
http://www.google.com/search?hl=zh-cn&newwindow=1&rls=gglg%2cgglg%3a2006-15%2cgglg%3azh&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);