近期公司买了一台新中新的二代身份证阅读器开发HR系统的接口时,发现在简体系统可以正常使用,同时,在简体下将读出来的数据转成繁体保存到文本文件在繁 体系统下可以正常显示,但是一到繁体系统上使用,并转成繁体却是乱码;本以为半天可以完成的工作却弄了一个星期,同时经过网络也找不到方法;

经过一段时间的思考,应该是新中新提供的SDK有问题,于是跟新中新的工程师了解到他们是用C++写的SDK,在调用 MultiByteToWideChar 函数的区位码参数用的是常量,于是我想会不会是简体系统与繁体系统中这个常量的值不一样呢?于是,我让新中新的工程师帮忙取消掉这个常量,直接写成 “936”;

经修改后,在繁体系统下试,终于OK了,经过这一次的经历,让我对Unicode、 ANSI 码等表示中文 有了新的让识,以后再和大家慢慢分享 ...

Function GBCht2Chs(GBStr: String): AnsiString;
{进行GBK繁体转简体}
Var
Len: integer;
pGBCHTChar: PChar;
pGBCHSChar: PChar;
Begin
pGBCHTChar := PChar(GBStr);
Len := MultiByteToWideChar(936, 0, pGBCHTChar, -1, Nil, 0);
GetMem(pGBCHSChar, Len * 2 + 1);
ZeroMemory(pGBCHSChar, Len * 2 + 1);
LCMapString($804, LCMAP_SIMPLIFIED_CHINESE, pGBCHTChar, -1, pGBCHSChar, Len * 2);
result := String(pGBCHSChar);
FreeMem(pGBCHSChar);
End;

Function GBChs2Cht(GBStr: String): AnsiString;
{进行GBK简体转繁体}
Var
Len: integer;
pGBCHTChar: PChar;
pGBCHSChar: PChar;
Begin
pGBCHSChar := PChar(GBStr);
Len := MultiByteToWideChar(936, 0, pGBCHSChar, -1, Nil, 0);
GetMem(pGBCHTChar, Len * 2 + 1);
ZeroMemory(pGBCHTChar, Len * 2 + 1);
LCMapString($804, LCMAP_TRADITIONAL_CHINESE, pGBCHSChar, -1, pGBCHTChar, Len * 2);
result := String(pGBCHTChar);
FreeMem(pGBCHTChar);
End;

Memo1.text:=GBChs2Cht(Memo1.text);   //简体转繁体

Memo1.text:=GBCht2Chs(Memo1.text); //繁体转简体

商业智能 BI

如有转载,请注明出处 http://www.erpgear.com/show.php?contentid=832

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8549402/viewspace-1124590/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8549402/viewspace-1124590/

Delphi 繁简转换相关推荐

  1. 用ASP实现简单的繁简转换

    用ASP实现简单的繁简转换 国际化似乎是一个很流行的口号了,一个站点没有英文版至少也要弄个繁体版,毕竟都是汉字,翻译起来不会那么麻烦:P 一般的繁简转换是使用字典,通过GB的内码算出BIG5字符在字典 ...

  2. SEO批量文章繁简转换,同义词替换

    网站建设如何批量将繁体字转成简体字,繁简互转的方式很多,怎么将多篇繁体字文章转化为对应的简体字文章?SEO内容处理工具可以对在线或本地Word.Excel.TXT.HTML等繁体文章批量转化为简体文章 ...

  3. java 中文分词转拼音_pyhanlp 繁简转换之拼音转换与字符正则化

    繁简转换 HanLP几乎实现了所有我们需要的繁简转换方式,并且已经封装到了HanLP中,使得我们可以轻松的使用,而分词器中已经默认支持多种繁简格式或者混合.这里我们不再做过多描述. ·说明 · Han ...

  4. Android多语言支持以及繁简转换

    Android多语言支持以及繁简转换 Android自身就带有多语言支持.前一段时间需要做一个同时支持繁简体的APP,经过简单的搜索和探索,轻松解决了问题.并且写了一个简单的繁体到简单的转换类.分享给 ...

  5. linux 繁体中文转为简体,中文繁简转换及其转换工具.pdf

    ·计算机教育·· 本栏目贲任编辑:主力 中文繁简转换及其转换工具 冯 霞 (北京师范大学中文信息处理研究所,北京100875) 摘要:简体中文和繁体中文是现代汉语并存的两种书面形式.它们在语音.词汇. ...

  6. pyhanlp 繁简转换之拼音转换与字符正则化

    繁简转换 HanLP几乎实现了所有我们需要的繁简转换方式,并且已经封装到了HanLP中,使得我们可以轻松的使用,而分词器中已经默认支持多种繁简格式或者混合.这里我们不再做过多描述. ·说明 · Han ...

  7. 繁简转换的实现方式。

    当网站遇到国际化问题时,会考虑将网站的文字转换语言形式.通常涉及这种国际化问题时会有多种实现方式.首先要将网站的编码格式设置成支持多种语言的UTF-8编码,然后对页面进行本地化翻译工作.本地化翻译分为 ...

  8. .Net Core下繁简转换的实现

    在之前.Net Framework下我们的汉字繁简转换一般是通过Microsoft.VisualBasic库里来实现的,引用此类库后可以使用方法 Strings.StrConv(s_souce, Vb ...

  9. 繁简转换OpenCC,autogb 和 autob5,iconv,python的jianfan包

    OpenCC OpenCC 是跨平台.多语言的开放中文转换库,除了基本的简繁转换功能外,用户还可以选择对不同用词习惯和异体字的处理方式. OpenCC 还提供方便的网页转换界面. OpenOffice ...

最新文章

  1. 【深度学习篇】--神经网络中的调优二,防止过拟合
  2. python必背内容-初学Python必背手册
  3. C++map的基本操作和使用
  4. 视频编解码优化以及与AI的实践结合
  5. iOS根据图片url获取尺寸
  6. 【题解】【洛谷 P1967】 货车运输
  7. java 管理系统登陆完毕后关闭窗口_【求助】登录窗口登录成功后隐藏窗口
  8. linux课堂笔记(7)
  9. Java破碎重组_Java代码重组
  10. .NETCore中实现ObjectId反解
  11. “S“ is the acronym for Super
  12. 数据库访问优化法则详解之返回更少的数据
  13. python:读取mat文件
  14. google datastudio 使用教程
  15. 手机如何打开.html,手机怎么打开HTML
  16. duilib入门教程
  17. 服务器cpu天梯图_笔记本CPU排行天梯图2020
  18. CSS3颜色不透明度如何设置?
  19. 基于Java+SpringBoot+Thymeleaf+Mysql餐厅座位预约预订网站系统设计与实现
  20. HinM_COMPILER_cale计划和实现

热门文章

  1. java catch throwable_如何处理异常? catch Exception OR catch Throwable
  2. JavaScript的关键字var、let、const三者的区别
  3. RTT设备和驱动(2)UART 设备
  4. ipad手写笔什么牌子好?apple pencil的平替笔推荐
  5. c语言客观题题库,大学生课程C语言期末客观题——期末客观题练习题4
  6. 带你认识什么是485通信
  7. 数学的基本运算可分为三个等级。第一级为加、减运算,“连加”或“连减”时发明了第二级运算——乘法和除法,“连乘”和“连除”,即“乘方”。乘方有两种逆运算分别是“开方”和“对数”。这是第三级运算特殊之处
  8. html 中加载pdf,在HTML中嵌入PDF的推荐方法?
  9. IE8 + JQuery1.12.4 兼容之旅
  10. render渲染的理解汇总