加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 为什么AnsiSameText不是ANSI?

发布时间:2020-12-15 09:40:56 所属栏目:大数据 来源:网络整理
导读:人们会相信,看看名称,SysUtils(Delphi XE)中定义的AnsiSameText将接收ANSI字符串作为参数,但函数定义如下: function AnsiSameText(const S1,S2: string): Boolean 我在这里错过了什么? 在AnsiStrings单元中有一个ANSI函数,但为什么这个(在Sysutils中)称为
人们会相信,看看名称,SysUtils(Delphi XE)中定义的AnsiSameText将接收ANSI字符串作为参数,但函数定义如下:

function AnsiSameText(const S1,S2: string): Boolean

我在这里错过了什么?
在AnsiStrings单元中有一个ANSI函数,但为什么这个(在Sysutils中)称为’ansi’?

解决方法

在旧版本的Delphi中,在Unicode之前,有两组字符串比较函数:

> SameText,CompareText等.这些执行的比较忽略了语言环境.
> AnsiSameText,AnsiCompareText等.这些进行了比较,将区域设置考虑在内.

引入Unicode时,这些以字符串形式运行的函数现在可以在UTF-16数据上运行.为了向后兼容,它们保留相同的名称,并以相同的方式运行.这是SameText不考虑区域设置,但AnsiSameText.

因此,虽然这些名称具有误导性,但Ansi前缀只是表明该函数可以识别语言环境.对于它的价值,在我看来,即使在Unicode前Delphi中,Ansi前缀也很差.

区域设置很重要的原因是不同的区域设置对字母排序有不同的规则.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读