【发布时间】:2014-01-07 17:22:33
【问题描述】:
关于 Unicode 的信息太多了,但我很难得出结论。
我正在开发一个多语言的 Delphi XE5 应用程序,现在我遇到了这个 unicode 字符的问题。老实说,我不想了解背后的魔力,我只想看到它们在我的应用程序中工作。
以前很简单。一般使用String数据类型。现在我读到了WideString、UnicodeString、AnsiString 以及 XE5 中的 String 与 UTF-16 兼容的事实
我已经用WideString 进行了测试,并且像 (șțăîâ) 这样的后期字符正在工作,但仍然不清楚 WideString 是否是最好的字符。我应该使用UnicodeString 还是其他?
那么,如果我要做一个支持所有语言的多语言应用程序,到底应该使用什么样的数据类型?是否有可能保持String 类型并获得与WideString 相同的结果?
备注:我在我的应用程序中使用 FireDac 组件,但这不重要。
【问题讨论】:
-
你应该简单地使用
string。 -
TField.AsString returns an AnsiString encoded value (even if declared as string) 和 TField.AsWideString 返回一个 string=UnicodeString!这可能是你困惑的根本原因。见blog.synopse.info/post/2013/04/22/TDataSet...-now-I-m-confused :)
标签: delphi unicode utf-16 type-conversion