unicode to utf8 转化
来源:互联网 发布:跑步机推荐 知乎 编辑:程序博客网 时间:2024/05/30 04:29
#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
//计算需要的char的长度
int wstr2strLen(const wchar_t *pwstr)
{
int count = 0;
int i;
int len = wcslen(pwstr);
for(i = 0; i < len; ++i)
{
unsigned short tmp = *(pwstr + i);
printf("tmp num is %0x/n", tmp);
if (tmp < 0x007F)
{
count += 1;
} else if (tmp > 0x0800)
{
count += 3;
}
else
{
count += 2;
}
}
return count;
}
//单个字符的转化
/* UCS-2编码(16进制) UTF-8 字节流(二进制)
0000 - 007F 0xxxxxxx
0080 - 07FF 110xxxxx 10xxxxxx
0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx
*/
int W2C(const wchar_t *pw, char *pc)
{
unsigned short tmp = *pw;
if (tmp < 0x007F)
{
*pc = *pw;
return 1;
}
else if (tmp > 0x0800)
{
*pc = 0xe0 | (((*pw >> 8) & 0xf0) >> 4);
*(pc + 1) = 0x80 | (((*pw >> 8) & 0x0f) << 2) | ((*pw & 0xc0) >> 6);
*(pc + 2) = 0x80 | ((*pw & 0x3f));
return 3;
}
else
{
*pc = 0xc0 | ((*pw >> 8) & 0x03) << 2 | (*pw & 0xc0) >> 6;
*(pc + 1) = 0x80 | (*pw & 0x3f);
return 2;
}
return 0;
}
//字符串的转化
char *wstr2cstr(const wchar_t *pwstr, char *pcstr, size_t len)
{
char *ptemp = pcstr;
if (pwstr != NULL && pcstr != NULL)
{
size_t wstr_len = wcslen(pwstr);
printf("wstr_len is %d/n", wstr_len);
len = (len > wstr_len) ? wstr_len : len;
while (len-- > 0 )
{
int i = W2C(pwstr, pcstr);
pwstr++;
pcstr += i;
}
*pcstr = '/0';
return ptemp;
}
return 0;
}
- unicode to utf8 转化
- UTF8 to Unicode
- utf8 to unicode
- UTF8 to unicode
- UTF8/ANSI to Unicode
- perl 转化 utf8/unicode/gb2312
- Unicode与UTF8相互转化
- 关于UNICODE转化成UTF8和POST
- ANSI、Unicode、UTF8相互转化的函数
- utf8-to-utf8mb4 mysql支持全部unicode
- utf8编码转化为unicode的一个精彩函数
- 在Ruby中将unicode直接量转化成为utf8字符
- C++中ASCII、unicode与Utf8之间的相互转化
- C++中ASCII、unicode与Utf8之间的相互转化
- C++中ASCII、unicode与Utf8之间的相互转化
- unicode&utf8
- UTF8/Unicode
- 转码utf8 - unicode 和 unicode - utf8
- jscalendar 1.0 初探!
- 积累线程实例
- [2008-10-28]发布 DBATools For PL/SQL Developer 0.7.0.0版
- WinCE系统的编译过程
- SP2升级SP3遭遇“空间不足”解决方案
- unicode to utf8 转化
- 如何在目前的通货紧缩期(衰退期,萧条期)中守住我们的财产
- JThink:发布JThink-Framework-1.0-M6版本
- VS2005卸载
- WinXP SP3 截至 2008 年 8 月 更新汇总
- 将XP SP3集成到Windows XP安装光盘
- ibatis中的like语句的写法
- OMNA PUSH Application ID
- 详解spring事务属性