unicode 转 utf8
来源:互联网 发布:打骚扰电话软件 编辑:程序博客网 时间:2024/05/22 06:21
int unicode_to_utf8(uint16 *in, int insize, unsigned char **out)
{
int i = 0;
int outsize = 0;
int charscount = 0;
unsigned char *result = NULL;
unsigned char *tmp = NULL;
charscount = insize;
result = (unsigned char*)malloc(charscount * 3 + 1);
memset(result, 0, charscount * 3 + 1);
tmp = result;
for (i = 0; i < charscount; i++)
{
uint16 unicode = in[i];
if (unicode >= 0x0000 && unicode <= 0x007f)
{
*tmp = (char)unicode;
tmp += 1;
outsize += 1;
}
else if (unicode >= 0x0080 && unicode <= 0x07ff)
{
*tmp = 0xc0 | (unicode >> 6);
tmp += 1;
*tmp = 0x80 | (unicode & (0xff >> 2));
tmp += 1;
outsize += 2;
}
else if (unicode >= 0x0800 && unicode <= 0xffff)
{
*tmp = 0xe0 | (unicode >> 12);
tmp += 1;
*tmp = 0x80 | (unicode >> 6 & 0x003f);
tmp += 1;
*tmp = 0x80 | (unicode & (0xff >> 2));
tmp += 1;
outsize += 3;
}
}
*tmp = '\0';
*out = result;
return 0;
}
{
int i = 0;
int outsize = 0;
int charscount = 0;
unsigned char *result = NULL;
unsigned char *tmp = NULL;
charscount = insize;
result = (unsigned char*)malloc(charscount * 3 + 1);
memset(result, 0, charscount * 3 + 1);
tmp = result;
for (i = 0; i < charscount; i++)
{
uint16 unicode = in[i];
if (unicode >= 0x0000 && unicode <= 0x007f)
{
*tmp = (char)unicode;
tmp += 1;
outsize += 1;
}
else if (unicode >= 0x0080 && unicode <= 0x07ff)
{
*tmp = 0xc0 | (unicode >> 6);
tmp += 1;
*tmp = 0x80 | (unicode & (0xff >> 2));
tmp += 1;
outsize += 2;
}
else if (unicode >= 0x0800 && unicode <= 0xffff)
{
*tmp = 0xe0 | (unicode >> 12);
tmp += 1;
*tmp = 0x80 | (unicode >> 6 & 0x003f);
tmp += 1;
*tmp = 0x80 | (unicode & (0xff >> 2));
tmp += 1;
outsize += 3;
}
}
*tmp = '\0';
*out = result;
return 0;
}
阅读全文
0 0
- Unicode转UTF8
- utf8 转 unicode
- UTF8转unicode
- UNICODE 转 UTF8
- utf8转unicode
- unicode转utf8
- utf8转unicode
- utf8转unicode
- PHP UNICODE 转 UTF8
- unicode转UTF8
- unicode 转 utf8
- UTF8转Unicode
- unicode码表 及 unicode转utf8规则
- unicode码表 及 unicode转utf8规则
- unicode码表 及 unicode转utf8规则
- Asc转UTF8及Unicode
- unicode 转 utf8, WideCharToMultiByte MultiByteToWideChar
- UTF8 转 UNICODE GBK ANSI
- 完整页面登录
- redis
- Java动态创建JButton并添加对应监听响应
- struts2文件上传
- 事件类型--焦点事件
- unicode 转 utf8
- SQL一张表中的字段根据另一张表来更新
- 免安装oracle客户端使用PLSQL
- 电视机和机顶盒等焦点问题
- HTML5和CSS编写规范
- 如何用SecureCRT 访问 EC2
- yocto
- 解决Chrome尝试对插件进行降级问题
- 安卓开发中android studio批量查找替换项目中的字符串