源:C语言实现GBK/GB2312/五大码之间的转换

//---------------------------------------------------------------------------
// 大五码Big5转GBK码:
void __fastcall BIG52GBK(char *szBuf)
{if (!strcmp(szBuf, ""))return;int nStrLen = strlen(szBuf);wchar_t *pws = new wchar_t[nStrLen + 1];try{int nReturn = MultiByteToWideChar(950, 0, szBuf, nStrLen, pws, nStrLen + 1);BOOL bValue = false;nReturn = WideCharToMultiByte(936, 0, pws, nReturn, szBuf, nStrLen + 1, "?", &bValue);szBuf[nReturn] = 0;}__finally{delete[] pws;}
}
//---------------------------------------------------------------------------
// GBK转大五码(Big5)
void __fastcall GBK2BIG5(char *szBuf)
{if(!strcmp(szBuf, ""))return ;int nStrLen = strlen(szBuf);wchar_t *pws = new wchar_t[nStrLen + 1];try{MultiByteToWideChar(936, 0, szBuf, nStrLen, pws, nStrLen + 1);BOOL bValue = false;WideCharToMultiByte(950, 0, pws, nStrLen, szBuf, nStrLen + 1, "?", &bValue);szBuf[nStrLen] = 0;}__finally{delete[] pws;}
}
//----------------------------------------------------------------------------
// GB2312码转GBK码
void __fastcall GB2GBK(char *szBuf)
{if(!strcmp(szBuf, ""))return;int nStrLen = strlen(szBuf);WORD wLCID = MAKELCID(MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED), SORT_CHINESE_PRC);int nReturn = LCMapString(wLCID, LCMAP_TRADITIONAL_CHINESE, szBuf, nStrLen, NULL, 0);if(!nReturn)return;char *pcBuf = new char[nReturn + 1];try{wLCID = MAKELCID(MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED), SORT_CHINESE_PRC);LCMapString(wLCID, LCMAP_TRADITIONAL_CHINESE, szBuf, nReturn, pcBuf, nReturn + 1);strncpy(szBuf, pcBuf, nReturn);}__finally{delete[] pcBuf;}
}
//---------------------------------------------------------------------------
// GBK码转GB2312码
void __fastcall GBK2GB(char *szBuf)
{if(!strcmp(szBuf, ""))return;int nStrLen = strlen(szBuf);WORD wLCID = MAKELCID(MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED), SORT_CHINESE_BIG5);int nReturn = LCMapString(wLCID, LCMAP_SIMPLIFIED_CHINESE, szBuf, nStrLen, NULL, 0);if(!nReturn)return;char *pcBuf = new char[nReturn + 1];try{wLCID = MAKELCID(MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED), SORT_CHINESE_BIG5);LCMapString(wLCID, LCMAP_SIMPLIFIED_CHINESE, szBuf, nReturn, pcBuf, nReturn + 1);strncpy(szBuf, pcBuf, nReturn);}__finally{delete []pcBuf;}
}

转载于:https://www.cnblogs.com/LittleTiger/p/5039207.html

C语言实现GBK/GB2312/五大码之间的转换(转)相关推荐

  1. c语言字符串如何转换成gbk,C语言实现GBK/GB2312/五大码之间的转换(转)

    //--------------------------------------------------------------------------- // 大五码Big5转GBK码: void ...

  2. C#_汉字与GBK,Unicode,UTF-8编码之间的转换

    IT发展至今,字符编码版本众多,目前流行的GBK,Unicode,UTF-8编码与汉字的转换可用如下代码: private void button1_Click(object sender, Even ...

  3. c语言LPCTSTR char,LPCTSTR,std::wstring之间的转换

    一般LP代表指针,C代表const,T代表宽字符,STR代表字符串,这么对应下来大概是这样:LPCTSTR = const TCHAR* 这里就不得不说TCHAR wideResult[MaxResu ...

  4. C语言实现任意进制数之间的转换

    使用C语言编程实现任意进制数(2-16进制)转换为其他任意进制数(2-16进制),实验平台:vs2015. #include<stdio.h> #include<string.h&g ...

  5. 华为机试C语言-一个正整数到Excel编号之间的转换

    题目描述:https://blog.csdn.net/qq_23934063/article/details/124676929 #include <stdio.h> #include & ...

  6. android utf-8 转 gbk编码,【字符编码系列】GBK,UTF-8,UTF-16之间的转换

    写在前面的话 本文属于 字符编码系列文章之一,更多请前往 字符编码系列. 大纲 不同编码转换的理论基础 UTF-16转UTF-8 UTF-16转GBK UTF-16和UTF-8之间的转换 UTF-16 ...

  7. linux安装 中文乱码怎么解决方法,Linux安装GBK/GB2312程序显示乱码的五种解决方法...

    不少用户在Linux系统中安装GBK或GB2312的时候遇到了乱码问题,这主要是系统默认语言是uft8所导致,对于该问题可用五种方法进行解决,接下来是小编为大家收集的Linux安装GBK/GB2312 ...

  8. 各种编码格式(GB2312,GBK,GB18030,unicode,utf-8)之间的关系

    汉字常用编码格式 为了在屏幕上显示字符.需要下面几个步骤: 制作所有字符对应的字模.比如大写字母A长什么样.这个模样就是最终显示在屏幕上图形,即我们看到的字符A. 为对所有的字符进行编码.比如大写字母 ...

  9. java ucs2转utf8_Unicode,UTF8,GB2312,UCS2,GBK之间的转换

    Unicode,UTF8,GB2312,UCS2,GBK之间的转换 平时用到的几种编码格式转换.平时用的不是很多.但是在做短信协议的时候,就经常遇到了.这段时间做短信平台接口,总结了几个,也不是很全. ...

最新文章

  1. Node的异步与java的异步_node中异步IO的理解
  2. Fedora重新调整发布周期,Fedora 30将保留很长时间
  3. SQLite 附加数据库(http://www.w3cschool.cc/sqlite/sqlite-attach-database.html)
  4. Serverless——前端的3.0时代
  5. 深入java核心_Java核心(五)深入理解BIO、NIO、AIO
  6. 正则表达式学习笔记005--脱字符和美元符的认识与应用
  7. 从汇编的眼光看C++(之泛型编程)
  8. 上周六香山游兄弟们的合影
  9. USDP使用笔记(二) 部署免费的USDP大数据双集群替代CDH CDP与HDP
  10. VMware虚拟机优化,提高虚拟机运行速度的方法?
  11. JPopupButton
  12. #CSDN软件工程师能力认证学习精选# NoSql是什么?
  13. 计算机三种校验方式,三种校验码
  14. Spark系列之Spark的资源调优
  15. C++String fing函数
  16. 腾讯企业 html邮件模板,python连接腾讯企业邮箱发送html邮件
  17. 使用Gitee+Hexo搭建高速稳定的个人博客
  18. 海康 布防 java
  19. 豆瓣源、清华源下载python包
  20. 计算机与会计相关毕设,关于会计专业毕业设计开题报告

热门文章

  1. c# 中const 和 static readonly 的区别
  2. membership配置数据库(SQL2000)
  3. 灰度拉伸python_灰度变换之灰度线性拉伸(算法1)
  4. 基金定投十年不止赢不止损会怎么样?
  5. 农村男女离婚,为什么感觉很多都是女人什么都带不走?
  6. 不要让人知道你是在笼络人心
  7. 人有钱了就显得素质高,也显得懂事了
  8. 创业者如何防止合伙股东退出,给公司造成损失?
  9. 怎么判断自己是不是备胎 ?
  10. DropBlock正则化