delphi7不支持UNICODE是怎么个不支持法?
这就要从字符集的概念开始说起 DELPHI7用的是ANSI编码,这是和操作系统的区域设置有关的,例如你是中文系统,那么你的字符集就是GBK GBK虽然是中文字符集,但不代表就完全只有中文字符,它也有一定的外语文字,例如日文,但这是在GBK字符集环境下才能显示出的日文。
假如是一个日本人在日文WINDOWS下用你的程序的话,他就会看到乱码(日文系统的字符集是SHIFT JIS)。因为同一个编码序号,在不同的字符集下,所对应的字符是不同的。这就是乱码产生的原因。而UNICODE就是为解决这种地域问题而产生的 - 一个集全球最常见语言的最常用文字符号所组成的字符集。使用UNICODE的程序,无论在简体中文系统,繁体中文系统,日文系统,还是韩文系统下,都不会出现乱码,因为它的字符集是全球统一的。但也不代表UNICODE能显示所有语言的所有文字,因为每个字符集的大小都是固定的,它不可能包含所有语言的所有文字,只能包含这些语言的最常用的子集。所以当你看到UNICODE下某个字显示不出来,也不用大惊小怪,尝试换种表达方式吧。现在主流的开发工具都是基于UNICODE的,例如Visual Studio、Eclipse等。DELPHI7由于出现得比较早,所以编译的程序的字符串并不是以UNICODE的编码保存,开发环境也不是UNICODE的。只能通过某些特殊的控件来实现UNICODE功能(如常见的TNT控件)。DELPHI从2003开始支持UNICODE,可以考虑升级到2007或2010,这是比较稳定的版本。当然也可以升级到最新的XE2、XE3。