utf-8编码转utf-16编码的算法是?
目前知道utf-16为2个字节的编码,而utf-8是可变字节长度的编码,有可能是一个字节、两个字节、三个字节。如下所示:UCS-2编码UTF-8字节流(二进制)0000-...
目前知道utf-16为2个字节的编码,而utf-8是可变字节长度的编码,有可能是一个字节、两个字节、三个字节。如下所示:
UCS-2编码 UTF-8 字节流(二进制)
0000 - 007F 0xxxxxxx
0080 - 07FF 110xxxxx 10xxxxxx
0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx
utf-16转utf-8懂了,把utf-16的值转换成二进制的,然后从右往左填入后面对应utf-8的模版中,但是utf-8转utf-16就不会了。
utf-8转utf-16实例:例如“汉”字的Unicode编码是6C49。6C49在0800-FFFF之间,所以肯定要用3字节模板了:1110xxxx 10xxxxxx 10xxxxxx。将6C49写成二进制是:0110 110001 001001, 用这个比特流依次代替模板中的x,得到:11100110 10110001 10001001,即E6 B1 89。
这里想请问下高手,一个utf-16转utf-8的实例!!有好答案追加20分!!
上面的写反了,给出的实例是utf-16转utf-8的,我要的是utf-8转utf-16的。 展开
UCS-2编码 UTF-8 字节流(二进制)
0000 - 007F 0xxxxxxx
0080 - 07FF 110xxxxx 10xxxxxx
0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx
utf-16转utf-8懂了,把utf-16的值转换成二进制的,然后从右往左填入后面对应utf-8的模版中,但是utf-8转utf-16就不会了。
utf-8转utf-16实例:例如“汉”字的Unicode编码是6C49。6C49在0800-FFFF之间,所以肯定要用3字节模板了:1110xxxx 10xxxxxx 10xxxxxx。将6C49写成二进制是:0110 110001 001001, 用这个比特流依次代替模板中的x,得到:11100110 10110001 10001001,即E6 B1 89。
这里想请问下高手,一个utf-16转utf-8的实例!!有好答案追加20分!!
上面的写反了,给出的实例是utf-16转utf-8的,我要的是utf-8转utf-16的。 展开
1个回答
展开全部
比如一个三字节的UTF8编码为:
1110ABCD 10EFGHIJ 10KLMNOP
那么它对应的UTF16编码就是:
ABCDEFGH IJKLMNOP
其实你的那个例子反着写就是UTF8变换UTF16的例子:
11100110 10110001 10001001 = E6 B1 89
变换回UTF16就是
01101100 01001001 = 6C 49
1110ABCD 10EFGHIJ 10KLMNOP
那么它对应的UTF16编码就是:
ABCDEFGH IJKLMNOP
其实你的那个例子反着写就是UTF8变换UTF16的例子:
11100110 10110001 10001001 = E6 B1 89
变换回UTF16就是
01101100 01001001 = 6C 49
追问
我也知道。只是想知道写代码的时候怎么提取出来。
其实我代码也有,看不懂代码而已。呵呵。后来问工程师问到了。
多谢啦。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询