c语言utf8转unicode

今天在c语言中实现中文(utf8)转换成unicode。干脆自己写了个转化函数。在百度上查了unicode的相关资料。终于搞懂了unicode跟utf8的关系了。

下图为百度百科找到的unicode转换表

  UTF-8

  UTF-8以字节为单位对Unicode进行编码。从Unicode到UTF-8的编码方式如下:
  Unicode编码(16进制) ║ UTF-8 字节流(二进制) 
  000000 - 00007F ║ 0xxxxxxx 
  000080 - 0007FF ║ 110xxxxx 10xxxxxx 
  000800 - 00FFFF ║ 1110xxxx 10xxxxxx 10xxxxxx 
  010000 - 10FFFF ║ 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

 

根据转换表我们很容易就发现规律了。假设第一个字节以0开始,那么它的unicode就为第一个字节的后7位。中文的UTF-8是以1110打头的,所以中文的unicode就为第一字节的后四位+第二字节的后6位+第三字节的后6位组成。

 

References:

1.http://blog.csdn.net/ywb111211/article/details/4844856

 

posted @ 2014-04-28 23:46  Superpig0501  阅读(832)  评论(0编辑  收藏  举报