我们必须升级到XE2(来自Delphi6)。
我收集了许多关于此的信息,但其中一个对我来说并不清楚。
我们正在使用String - XE中的AnsiString是什么。
据我所知,我们必须替换我们库中的所有(P)Ansi [String / Char]以避免Unicode转换的副作用,并且我们可以编译我们的项目。
没关系,但我们也使用TStringList,我没有找到任何简单的TAnsiStringList类......; - )
你对此有何了解?这会引起问题吗?或者这个类有保留字符串的选项?
(好吧,这似乎是3个问题,但它只是一个问题)
程序/操作系统语言是匈牙利语,字符集是WIN-1250,有什么奇怪的字符,比如Ő,和Ű...
感谢您的所有信息,链接等
答案 0 :(得分:2)
1)首先 - 为什么你应该使用AnsiStringList,而不是将你的所有项目转换为unicode-aware TStringList?这应该有一些详细的原因,以提出可行的替代方案。
Unicode是windows-1250,windows-1251等的超集。 通常,所有特定于语言环境的字符串都将无损地转换为Unicode。 IT是相反的,Unicode到AnsiString,转换可能会丢失数据。 显式或隐式(如“如果char-set中的char-var”中的AnsiChar减少)
你可能有像DLL这样的类型不安全的API,编译器无法检查你是否通过了PChar或PAnsiChar,但你无论如何都不应该将对象传递给DLL,而是有BPL。
所以你可能只是不需要TAnsiStringList
2)你可以从Jedi代码库中获取TJclAnsiStringList
3)您可以使用XE2库存TList<AnsiString>
类型