网上很多代码,好多都是单个字符转码,自己整理了一下分享一下,望指正
UCS2:2字节unicode
utf8:多字节编码
int ucs2_to_utf8(const unsigned char *in, int ilen, unsigned char *out, int olen)
{
int length = 0;
if(!out) return length;
char *start = NULL;
char *pout = out;
for(start = in; start != NULL && start < in+ilen-1; start +=2)
{
unsigned short ucs2_code = *(unsigned short *)start;
if(0x0080 > ucs2_code)
{
/* 1 byte UTF-8 Character.*/
{
int length = 0;
if(!out) return length;
char *start = NULL;
char *pout = out;
for(start = in; start != NULL && start < in+ilen-1; start +=2)
{
unsigned short ucs2_code = *(unsigned short *)start;
if(0x0080 > ucs2_code)
{
/* 1 byte UTF-8 Character.*/