码迷,mamicode.com
首页 > Windows程序 > 详细

Delphi2010生成GB2312字库乱码问题

时间:2015-04-16 14:14:10      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

  用Delphi2010做一个点阵字库软件,字库生成部分是从一个用Delphi2007做旧的程序里扣出来的。点阵字库软件完成后生成GB2312字库在LED控制卡上显示为乱码。知道Delphi版本高于2009(含),则Delphi是unicode版本,旧程序无问题,那么问题肯定出在编码转字符部分,于是查到

  S : String;

      S := Chr(Q) + Chr(W); // Q 和 W 分别是GB2312区域码的高字节和低字节

在GB2312编码表找到字符“啊”的区域码为 B0A1,用

    ShowMessage(Chr($B0) + Chr($A1););

显示出字符果然不对。

Delphi版本高于2009(含),则Delphi是unicode版本,函数Chr返回的是对应编码的unicode字符。对于英文字母、数字等,和低版本的返回结果一致;对于汉字,则一般返回对应编码的unicode字符。

于是改用AnsiChar();

  ShowMessage(AnsiChar($B0) + AnsiChar($A1));

显示字符为“啊”。

至此问题解决。

Delphi2010生成GB2312字库乱码问题

标签:

原文地址:http://www.cnblogs.com/LittleTiger/p/4431340.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!