麦步社区-论坛
标题:
求助:unicode转utf8
[打印本页]
作者:
qs100371
时间:
2017-4-12 11:32
标题:
求助:unicode转utf8
从API得到 \u3010\u5df2\u7b7e\u6536\uff0c\u7b7e\u6536\u4eba\u662f\u5feb\u9012\u9a7f\u7ad9\u3011这样的字符串,要转成utf8
下面哪有问题呢?
static int hex2int(char c)
{
return (c >= 'a' ? (10 + c - 'a') : (c - '0'));
}
static char *unicode2utf8(char *str)
{
// \u3010\u5df2\u7b7e\u6536\uff0c\u7b7e\u6536\u4eba\u662f\u5feb\u9012\u9a7f\u7ad9\u3011
char utf8[3], *out;
int i, j = strlen(str);
wchar_t ch;
out = (char *)malloc(200);
for (i = 0; 6*i < j; i++)
{
ch = hex2int(*(str + 6 * i + 2)) << 12 + hex2int(*(str + 6 * i + 3)) << 8 + hex2int(*(str + 6 * i + 4)) << 4 + hex2int(*(str + 6 * i + 5));
memset(utf8, 0, 3);
utf8[0] = 0xE0 | (ch >> 12);
utf8[1] = 0x80 | ((ch >> 6) & 0x3F);
utf8[2] = 0x80 | (ch & 0x3F);
strcat(out, utf8);
}
return out;
}
作者:
reerayxia
时间:
2017-4-12 16:20
百度。。。HOHO。。。
作者:
qs100371
时间:
2017-4-12 16:48
是百度了的,写完放源码里最后输出是空白
作者:
qs100371
时间:
2017-4-13 09:37
今天发现模拟器上移位有问题,把移位换成乘除法就可以正常模拟了,不过在手表上还是显示不了,只显示一个黑色的问号。
作者:
细川玉木
时间:
2017-4-14 00:10
你辛苦啦
欢迎光临 麦步社区-论坛 (http://203.195.186.190/)
Powered by Discuz! X3.2