Delphi7升级到XE2的字符串问题2 delphi xe2 lite

原来的Delphi中有两种字符串:AnsiString和WideString。默认的string即AnsiString。而在Delphi2009中,新增加了一种UnicodeString。为什么不沿用之前的WideString呢?WideString其实是为了方便使用COM而产生的,就是BSTR。BSTR没有引用计数,效率较低。而UnicodeString才是AnsiString的真正unicode版本。于是,Delphi2009就有了三种字符串类型:AnsiString、WideString、UnicodeString。默认的string即为UnicodeString。对应的相关类型包括:
AnsiString -PAnsiChar -TAnsiString?(这个可以有……这个真没有,JclAnsiStrings.pas是一个替代品)
WideString -PWideCha r - TWideStrings(WideStrings.pas)
UnicodeString - PWideChar - TStrings(Classes.pas)

在实际应用中,一般应使用UnicodeString。在效率第一的场合,可以使用AnsiString处理Ansi文本。而WideString仅在使用COM的时候才需要,或者是为了向下兼容。

几个字符串相关unit的作用

StrUtils.pas:UnicodeString的处理函数。
AnsiStrings.pas:AnsiString的处理函数。
WideStrUtils.pas :WideString的处理函数。
WideStrings.pas:TWideStringList的实现。
Classes.pas:TStringList的实现。
JclAnsiStrings.pas:TJclAnsiStringList的实现。这个虽然是第三方库,但不得不提,谁让CodeGear好死赖活不肯加呢。

Delphi 2009的VCL完全使用UnicodeString,彻底支持Unicode。TNT UnicodeControls终于完成了光辉的历史使命。VCL设计之初不支持Unicode情有可原,但多年以后,在国际化的大潮中,依然没有改变,就是重大失误了。13年的等待,黄花菜都凉了。不论如何,今日的Delphier,可以放心大胆的使用Unicode了。

关于UTF8String。UTF8String在之前的版本中就是AnsiString,没有什么特殊功能。而在Delphi2009中,UTF8String才是真正的UTF8。如果把一个AnsiString赋值给一个UTF8String,那么Delphi2009会自动转换格式为UTF8String,这比以前可要方便多了。

关于RawByteString。这个在某些场合有用。如果你有一个函数,接受AnsiString或者UTF8String,但不希望发生自动转换,那么可以通过重载,实现两个函数分别处理AnsiString和UTR8String。另一个选择就是使用RawByteString,那么不管传过来的是AnsiString还是UTF8String,RawByteString都会忠实的保持原样,不会做任何转换。

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/241584.html

更多阅读

诺基亚500操作系统升级贝拉 的方法 诺基亚n8升级贝拉系统

说到刷机、升级,很多人都认为这是手机达人们感兴趣的东西,其实不然。上个月,诺基亚为多款机型提供了升级服务,即升级到最新的诺基亚贝拉系统。新的系统不仅提供了清新的界面,同时还有操作方式以及性能上的改进,非常值得诺基亚老用户进行系

PayPal提现转帐到银行的详细流程图 paypal如何提现

PayPal如何转帐到我对应的银行卡上面呢?这里给大家把详细的流程介绍下。1、登录您的PayPal账户,点击“提现”子选项卡,选择“将资金通过电汇发送到您的中国银行账户”2、在“国家和地区”的下拉菜单中选择“中国——电汇”

谢有顺小说课堂之四:小说叙事的伦理问题

谢有顺小说课堂之四小说叙事的伦理问题谢有顺一  论到现代小说,必然关涉到叙事的伦理问题。  叙事不仅是一种讲故事的方法,也是一个人的在世方式;叙事不仅是一种美学,也是一种伦理学。为什么叙事会是一种伦理?因为叙事所关注的,是

中国文化的趣味问题2 中国文化有问题

先有帽子还是先有冠我们的生活离不开帽子,有时图个时尚,有时为了遮风挡雨。可是你知道古代的帽子是什么样吗?原来,在古代社会中,帽子的别称就是冠,当然冠的形状和现在的帽子并不一样。先秦时代,冠是用来显示贵族身份的服饰标志。在阶级社会

声明:《Delphi7升级到XE2的字符串问题2 delphi xe2 lite》为网友向鈤葵微笑分享!如侵犯到您的合法权益请联系我们删除