以下是GB2312编码与UTF-8编码相互转换,自测通过。
思路:GB2312编码与UTF-8编码相互转换,是通过转化为中间编码(UNICODE),再转化为其它编码
//------------------------------------------------------------------------------------------------------------------------------
#ifdef LINUXCODE
#include <iconv.h>
#endif
//这里再包含其它头文件
//这里是由UTF-8转化为UNICODE,其中pText是需要转换内容的指针,pOut是转换后内容的指针
int cU8xU(WCHAR* pOut,char *pText)
{
int ret = 0;
char* uchar = (char *)pOut;
unsigned cIn = (unsigned char)pText[0];
if(cIn<0x80)
{ // ASCII 0x00 ~ 0x7f
pOut[0] = pText[0];
}
else if(cIn<0xdf)
{
uchar[0] = (pText[0]<<6)|(pText[1]&0x3f);
uchar[1] = (pText[0]>>2)&0x0f;
ret = 1;
}
else if(cIn<0xef)
{
uchar[0] = (pText[1]<<6)|(pText[2]&0x3f);
uchar[1] = (pText[0]<<4)|((pText[1]>>2)&0x0f);
ret = 2;
}
else if(cIn<0xf7)
{
uchar[0] = (pText[2]<<6)|(pText[3]&0x3f);
uchar[1] = (pText[1]<<4)|((pText[2]>>2)&a

这段代码提供了在Linux和Windows环境下GB2312编码与UTF-8编码的相互转换方法。通过转化为UNICODE作为中间步骤,实现了不同编码间的转换。代码包括了UTF-8到GB2312、GB2312到UTF-8的转换函数,以及在Linux下使用iconv进行编码转换的函数。
最低0.47元/天 解锁文章
903

被折叠的 条评论
为什么被折叠?



