读书人

char数组转String简体中文平台OK繁

发布时间: 2012-03-03 15:33:03 作者: rapoo

char数组转String,简体中文平台OK,繁体中文平台乱码,请大侠帮忙
环境:WinXP SP2 简体中文; WinXP SP2繁体中文(台湾),Delphi7.0
问题:在简体环境中,将char数组转成简体中文字串,没有问题;但是在繁体环境下,有部分乱码,乱码形式为问号,如
数组为:( 'N ', 'g ', #246, 'e ', #27, 'g ', ' ', #0, ' ', #0, ' ', #0, ' ', #0, ' ', #0, ' ', #0, ' ', #0, ' ', #0, ' ', #0, ' ', #0, ' ', #0, ' ', #0)
转换的结果为: 李?望

主要代码如下:

aName:array[0..29] of char;
...
FillChar(aName,30,0);
...
copymemory(@aname,@TmpCHMsg,30);
...
LName.Caption:=ConvertLang(WideCharLenToString(@aName,15));

主要使用WideCharLenToString对char数组进行转换,感觉因为数组里的char串本来就是简体ANSI,在简体平台上转自然没问题,但是到了繁体平台,默认语言不是简体,所以出了问题。
请帮忙诊断解决,万分感谢!




[解决办法]
全部都用宽字符就好了阿

[解决办法]
widestring
[解决办法]
在繁体系统进行简繁转化后,控件的字符集CHARSET 也要设置成CHINESEBIG5_CHARSET.
[解决办法]
1. 为什么用 char数组,为什么不用string ?
2. 如果目标系统是繁体,编译前先把串转换成Big5编码的,当然在简体系统下编辑源码时看到的是乱码,在繁体系统下运行时就显示正常了。

工具 Big5GB.exe 用来转码

读书人网 >.NET

热点推荐