将ISO-2022-CN字符集转换成GBK的源代码

本文提供了将ISO-2022-CN字符集转换为GBK的源代码,旨在解决在Windows平台上处理Apple操作系统发送的邮件时出现的乱码问题。作者吴旻在找不到现成解码函数的情况下,自己编写了解码功能。

将ISO-2022-CN字符集转换成GBK的源代码

吴旻

泰岩网络工作室

 

         同事用的是Apple操作系统,发出来的邮件在我的系统中经常会有乱码。仔细看了下邮件内容,发现是邮件中使用的字符集是ISO-2022-CN。上网查了下,发现这东西在国内使用的很少,尤其是在Windows平台上,根本没提供现成的解码函数。想找个开源的相关代码,翻了半天,未果。

         今天有空,终于抽出时间写出了这个解码函数,供大家参考。

 

//ISO-2022-CN - 中文
//    ESC $ ) A 转为GB 2312-1980
//    ESC $ ) G 转为CNS 11643-1992第一字面
//    ESC $ * H 转为CNS 11643-1992第二字面
//ISO-2022-CN-EXT - 于ISO-2022-CN的基础上,加上以下六组逃逸字串
//    ESC $ ) E 转为ISO-IR-165
//    ESC $ + I 转为CNS 11643-1992第三字面
//    ESC $ + J 转为CNS 11643-1992第四字面
//    ESC $ + K 转为CNS 11643-1992第五字面
//    ESC $ + L 转为CNS 11643-1992第六字面
//    ESC $ + M 转为CNS 11643-1992第七字面
CString CTaiyanWebString::Iso2022cn2Gbk(const char *pSrc)
{
    CStringA strDest;
    char *pDest = strDest.GetBufferSetLength(strlen(pSrc));

    bool bIsConvert = false;

    while(*pSrc)
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值