UTF-8到Unicode的转换 纯C语言代码

fengqiaoyebo2008 2010-02-26 04:24:46
如题,求UTF到Unicode的转换,最近项目中用到,在网上找了好久,大都是借用c++的库函数,我现在需要纯c语言的代码。苦恼中。。。多谢各位高手!
...全文
922 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
musiclee 2010-02-27
  • 打赏
  • 举报
回复
下面这个 经典 我以前就是看这个明白的
http://blog.csdn.net/zhedatianrui/archive/2009/11/01/4754970.aspx
musiclee 2010-02-27
  • 打赏
  • 举报
回复
上面已经解释的很清楚了 。。。
给lz发个链接 看看字符编码的历史 就都明白啦。。http://blog.sina.com.cn/s/blog_4e3d894e0100akys.html
耍宝王 2010-02-27
  • 打赏
  • 举报
回复
Unicode字符集的范围是U-00000000 - U-7FFFFFFF
而UTF-X,是其具体的实现方法。中的X表示最小bit数,如:UTF-8表示的Unicode字符集其单个字符的存储最小为1个字节(8bit),最大为6个字节(48bit)(实际区间为1-4个字节,因为U-00200000 - U-7FFFFFFF一般用不到)。汉字为3个字节

而Windows下使用的Unicode字符集实现方法为UTF-16其单个字符的存储区间2-4个字节,但大部分字符(包括汉字)都能用2个字节表示

还有一种Unicode字符集实现方法为UTF-32其单个字符的存储为4个字节
pauliuyou 2010-02-27
  • 打赏
  • 举报
回复
UTF-8是unicode的实现,反正就是分析第一个字节就可以了,前几个位表示长度。要用到位操作
do_fork 2010-02-27
  • 打赏
  • 举报
回复
UTF-8本来就是unicode编码,何来转换之说?
Zijian_Zhang 2010-02-26
  • 打赏
  • 举报
回复
引用 3 楼 fengqiaoyebo2008 的回复:
楼上的代码有问题吧。我现在需要用纯C写的。不参杂任何C++或其他的东西


2楼提供的代码好像没有C++的成分,好像都是ANSI C。
fengqiaoyebo2008 2010-02-26
  • 打赏
  • 举报
回复
楼上的代码有问题吧。我现在需要用纯C写的。不参杂任何C++或其他的东西
logiciel 2010-02-26
  • 打赏
  • 举报
回复
************************************************************************
* Function: Utf8ToUnicode
************************************************************************/
static void Utf8ToUnicode(char* unicode, char *utf8)
{
char *pchar = utf8;
int nBytes = 0;

if (0 == (*utf8 & 0x80))
{
/*
* single-byte char
*/
nBytes = 1;
unicode[0] = *utf8;
}
else
{
/*
* 3-byte char (chinese char)
*/
int i;

if ( (*utf8 & 0xf0) == 0xe0 )
{
nBytes = 3;
unicode[0] = ((utf8[0] & 0x0f) <<4) + ((utf8[1] & 0x3c) >>2);
unicode[1] = ((utf8[1] & 0x03) <<6) + (utf8[2] & 0x3f);
}
else
{
debug("ERROR: utf-8 to unicode, nBytes !=3\n");
nBytes = 0;
unicode[0] = '?';
return;
}
}

return;
}


http://blog.chinaunix.net/u2/84258/showart_1839662.html
logiciel 2010-02-26
  • 打赏
  • 举报
回复
http://bbs.chinaunix.net/viewthread.php?tid=1370274

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧