UTF8转GB2312
来源:互联网 发布:淘宝店怎么改店名 编辑:程序博客网 时间:2024/03/29 02:40
1.UTF-8先到UNICODE
int UTF82UCS(unsigned char *pUTF8, wchar_t *pUCS){int UCSlen = 0, i;unsigned char *pTempUCS = NULL;unsigned char *pTempUTF8 = NULL;if(pUCS == NULL || pUTF8 == NULL)return -1;UCSlen = MultiByteToWideChar(CP_UTF8,0,(LPCSTR)pUTF8,-1,NULL,0);UCSlen--;pTempUCS = (unsigned char*)pUCS;pTempUTF8 = pUTF8;for(i = 0; i < UCSlen; i++){if((*pTempUTF8) <= 0x7F) //1 byte{*(pTempUCS + 1) = 0x00;*pTempUCS = *(pTempUTF8++);pTempUCS += 2;}else if((*pTempUTF8) >= 0xC0 && (*pTempUTF8) <= 0xDF)//2 bytes{*(pTempUCS + 1) = ((*pTempUTF8) >> 2) & 0x07;*pTempUCS = ((*pTempUTF8) << 6) | (*(pTempUTF8 + 1) & 0x3F);pTempUTF8 += 2;pTempUCS += 2;}else//3 bytes{*(pTempUCS + 1) = ((*pTempUTF8) << 4) | ((*(pTempUTF8 + 1) >> 2) & 0x0F);pTempUTF8++;*pTempUCS = ((*pTempUTF8) << 6) | (*(pTempUTF8+1) & 0x3F);pTempUTF8 += 2;pTempUCS += 2;}}return UCSlen;}
2.UNICODE到GB2312
void UnicodeToGB2312(char* pOut,wchar_t* uData,int nLen){WideCharToMultiByte(CP_ACP,NULL,uData,nLen,pOut,sizeof(wchar_t)*nLen,NULL,NULL);return;}
完整的例子
wchar_t pUnicode[128]= {0};char pGB2312[256]= {0};int nUnicodeLen = UTF82UCS((unsigned char *)pUtf8,(wchar_t*)pUnicode);UnicodeToGB2312((char*)&pGB2312,(wchar_t*)&pUnicode,nUnicodeLen);
- utf8 转 gb2312
- gb2312转utf8
- utf8转gb2312
- Gb2312转Utf8
- UTF8转GB2312
- C# 编码转换 UTF8转GB2312 GB2312转UTF8
- C# 编码转换 UTF8转GB2312 GB2312转UTF8
- C# 编码转换 UTF8转GB2312 GB2312转UTF8
- C# 编码转换 UTF8转GB2312 GB2312转UTF8
- php中GB2312转UTF8
- GB2312及UTF8编码【转】
- mysql编码gb2312转utf8
- utf8转gb2312精简版
- GB2312转UTF8示例程序
- utf8转gb2312精简版
- GB2312转UTF8编码表
- UTF8 GB2312
- vc++ UTF8与gb2312互相转码
- 专访剑桥大学校长作者:柴静
- CPU超线程技术
- WIN 7忘记登入密码
- 人群静默了一会,也就一小会
- 俄罗斯侦探小说家达丽娅•东佐娃:我是怎样战胜癌症的
- UTF8转GB2312
- Serializable与Parcelable传递对象详解(activity间传递对象方式)
- 程序员给自己五年前10个建议
- 思科与圣元合作构建园区网络
- 栈的基本应用----求迷宫的路径
- C#的checked和unchecked操作符
- Android新手笔记:通过sharedpreferences实现简单的多用户注册
- Comparator用法
- 在Android上使用ZXing识别条形码/二维码