delphi编程问题

langhua_778899 2018-12-11 09:15:25
anghua_778899: if ByteType(s,i) = mbSingleByte then 在delphi7中好用,但在delphi2010中不好用,是什么问题
...全文
93 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
SB-CSDN 回复没法编辑 上面有句说错了 unicode下最小单位是1字符(2字节), 不是2字符
  • 打赏
  • 举报
回复
因为D7的string是ansistring 而2010的string是unicodestring(类似于D7中的widestring) ansi下 一个中文需要2个字节存储, 而ansistring最小单位字符是1字节, 所以会出现遍历到半个中文字的情况, 所以需要判断是否SingleByte 而unicode下最小单位是2个字符, 也就是说一个中文和一个英文或一个数字都占一个字符(2字节), 也就不会出现读取半个中文字的情况, 所以无需这么判断了 而ByteType这个函数似乎是为了unicode兼容本地ansi字符保留下来的(以前delphi说明文档上见过这么一句)

2,495

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧