|
发表于 2007-3-24 16:34:01
|
显示全部楼层
Post by whshuai
比如“测”的utf8编码是“e6, b5, 8b”.
char *name = "测";
int i;
for(i = 0; i<strlen(name); i++)
printf("name = %x\n", name);
按说应该打印的是“0xe6, 0xb5, 0x8b”阿,可是打印出来的是“0xffffffe6, 0xffffffb5, 0xffffff8b”
这是什么原因呢?
因为你打印出来的是utf8编码的数值
而e6,b5,8b是“测”的unicode码
需要从utf8转换成unicode
有专门的码表和算法 |
|