然而,我有一个问题,希望有一个简单的解决方案:
该应用程序解析大量文本文件。这些文件都是基于ANSI的,永远不会改变,因此输入和输出都是ANSI。我的主要问题是,在Embarcadero C ++中,类型string现在是UnicodeString,而不是Borland C ++ Builder中的AnsiString。
在这个应用程序中使用Unicode不是一个选项 - 它处理的文件都是ANSI格式的。修改代码以使用AnsiString(和类似的内容)是可行的,但我宁愿不这样做,因为它使用了大量的TStringList(和类似的内容)构造。
因此,我的问题是:是否有一个设置或编译器选项或其他东西,可以告诉Embarcadero使用System.AnsiString作为string的定义,而不是System.UnicodeString?
这可能是一个长期的解决方案,但RAD Studio XE(这是我借来做一些测试的较旧版本)文档说:“默认情况下,类型string现在是Unicode字符串”,这意味着这可以改变。然而,在当前版本(XE8)的文档中,这被重新表述了...
UnicodeString
没有任何问题。UnicodeString
和AnsiString
都是模板类AnsiStringT
的特化版本,其中模板参数是代码页。 - M.M