首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

char数组转String,简体中文平台OK,繁体中文平台乱码,请大侠帮忙,该如何处理

2012-03-03 
char数组转String,简体中文平台OK,繁体中文平台乱码,请大侠帮忙环境:WinXPSP2简体中文;WinXPSP2繁体中文(

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 用来转码

热点排行