只包含中英文的UTF-8与Unicode的转换(不支持其它语言)

来源:互联网 发布:godaddy域名转入教程 编辑:程序博客网 时间:2024/06/05 21:57

 1.UTF8转Unicode

 

// 把UTF-8转换成Unicodevoid UTF_8ToUnicode(char *pIn,TCHAR* pOut){  char* uchar = (char *)pOut;  uchar[1] = ((pIn[0] & 0x0F) << 4) + ((pIn[1] >> 2) & 0x0F);  uchar[0] = ((pIn[1] & 0x03) << 6) + (pIn[2] & 0x3F);  return;}void UTF8_UNICODE(char *lpIn, int nLen, TCHAR *lpOut){  int i = 0;  int j = 0;  while( i < nLen )  {     WCHAR unicode = 0;     if( lpIn[i] > 0 )     {       *((char *)&unicode) = lpIn[i++];                            }     else                      {       UTF_8ToUnicode(lpIn + i,&unicode);       i += 3;         }  lpOut[j++] = unicode;  } lpOut[j] = L&apos;/0&apos;;}
2.Unicode转UTF-8
void UnicodeToUTF_8(TCHAR* pIn,char*pOut){   char* pchar = (char *)pIn;      pOut[0] = (0xE0 | ((pchar[1] & 0xF0) >> 4));      pOut[1] = (0x80 | ((pchar[1] & 0x0F) << 2)) + ((pchar[0] & 0xC0) >> 6);      pOut[2] = (0x80 | (pchar[0] & 0x3F));}void UNICODE_UTF8(TCHAR* lpIn,int nLen,char* lpOut){   int i = 0;   int j = 0;   while(i < nLen)   {      if(*(lpIn+i)>127)      {         UnicodeToUTF_8(lpIn + i,lpOut + j);         j+=3;      }      else      {         *(lpOut+j) = (char)*(lpIn+i);         j++;      }      i++;   }   lpOut[j+1] = 0;}
原创粉丝点击