GB2312编码与UTF-8编码的相互转换代码(linux windows下通用)

这段代码提供了在Linux和Windows环境下GB2312编码与UTF-8编码的相互转换方法。通过转化为UNICODE作为中间步骤,实现了不同编码间的转换。代码包括了UTF-8到GB2312、GB2312到UTF-8的转换函数,以及在Linux下使用iconv进行编码转换的函数。
摘要由CSDN通过智能技术生成

以下是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] &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值