想用VBscript 实现UTF8中文转换为Unicode hex编码
预期:
input='ABC123中文'
转换后,变为
output=\u0041\u0042\u0043\u0031\u0032\u0033\u4e2d\u6587
部分代码如下:
Function ToUnicodeChar(Char)
dim uchar
uchar = Hex(AscW(Char))
ToUnicodeChar = "\u" & String(4 - Len(uchar), "0") & uchar
End Function
input='ABC123中文'
output=''
response.write "Length: " & Len(input) & "
"
response.write "Unicode Name: " & input & "
"
For i=1 To Len(input)
output=output & ToUnicodeChar(Mid(input,i,1))
Next
response.write "Unicode Hex Code:" & output
代码执行结果如下:
Length: 12
Unicode Name: ABC123中文
Unicode Hex Code:\u0041\u0042\u0043\u0031\u0032\u0033\u00E4\u00B8\u00AD\u00E6\u2013\u2021
错误1:
Len(input) 返回的是12,而不是8。不确定是否为版本问题?
错误2:
output英文和数字转换成功,但是中文转换失败,而且中文转换出来的结果为3个字节处理。不理解。