JavaScript 字符串使用的是 Unicode 编码,实现方式是 UTF-16 ,每个字符占用两个字节,至于是 Big-Endian 还是 Little-Endian ,似乎应该和具体实现有关,不过这并不重要。JavaScript无法直接操作单个字节,所以只能用双字节的 UTF-16 来模拟 UTF-8 ,在内存中的字节并不是真正意义的 UTF-8 。
文章关键字 ‘Unicode’
JavaScript Unicode UTF-8
2011年04月26日,星期二HTML,Unicode与NCR(数字字符引用)
2011年04月9日,星期六VBS实现GB2312转Unicode
2010年11月9日,星期二今天写了一个类似于下面的程序:
Dim http Set http = CreateObject("msxml2.xmlhttp") http.open "GET","http://www.sina.com.cn/",False http.send WScript.Echo http.responseText
但是却发现返回的中文都是乱码,看了一下发现新浪的编码竟然是gb2312的,汗,现在都是utf-8编码的时代了。responseText对utf-8编码支持得很好,但是如果是gb2312编码就会返回乱码,有时甚至会报错。无奈,只好用responseBody然后自己转码。
Dim http Set http = CreateObject("msxml2.xmlhttp") http.open "GET","http://www.sina.com.cn/",False http.send WScript.Echo GB2312ToUnicode(http.responseBody)
VBS实现Unicode(UTF-16)转UTF-8
2010年09月28日,星期二有UTF-8转Unicode当然就有Unicode转UTF-8。
'Author: Demon 'Website: https://demon.tw 'Date: 2010/9/28 Function UnicodeToUtf8(str) Dim i, c, length out = "" length = Len(str) For i = 1 To length c = CLng("&H" & Hex(AscW(Mid(str,i,1)))) If (c >= &H0001) And (c <= &H007F) Then out = out & ChrB(c) ElseIf c > &H07FF Then out = out & ChrB(&HE0 Or (c\(2^12) And &H0F)) out = out & ChrB(&H80 Or (c\(2^ 6) And &H3F)) out = out & ChrB(&H80 Or (c\(2^ 0) And &H3F)) Else out = out & ChrB(&HC0 Or (c\(2^ 6) And &H1F)) out = out & ChrB(&H80 Or (c\(2^ 0) And &H3F)) End If Next UnicodeToUtf8 = out End Function
参考链接:UTF-8 – 维基百科,自由的百科全书
VBS实现UTF-8转Unicode(UTF-16)
2010年09月27日,星期一本文源于一个VBS群里的一个看起来很牛逼的人给别人的一个UTF-8转Unicode的函数Utf8ToUnicode。代码有60多行,放在了文章后面,以免喧宾夺主~
代码太长了,不知道是他自己写的还是复制粘贴的。我没有仔细看,但是简单测试了一下,貌似是正确的。
当时回了一句“Utf8ToUnicode函数哪需要这么复杂”,谁知他来了句“如果用api的话,当然一个了。”
算了,看在他的代码功能是正确的份上,我就不多说什么了。下面给出我写的自以为比他的简单的Utf8ToUnicode函数。 (更多…)