开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

123
返回列表 发新帖
楼主: 鹏书
收起左侧

[已解决] 寻找文本问题

 关闭 [复制链接]

结帖率:100% (9/9)
发表于 2023-4-10 03:36:02 | 显示全部楼层   广西壮族自治区崇左市
福仔 发表于 2023-4-10 03:25
因为GBK编码超过128按两个字节算, 所以一旦有一个双字节的少了一个字节, 那么往后所有的双字节文字都会出错 ...

易语言的寻找文本是按文本寻找, 不是按字节寻找, 效率会有点低下, 但是不会
假如源文本是两个汉字 = {1,2,  3,4}, 搜索 {2,3}, 易语言的寻找文本是返回找不到, 因为1,2 是一个字, 3,4 是另一个子
如果是c函数的寻找文本或者c++的寻找文本都返回找到, 他是按字节查找

我以前怎么都没有发现这个问题呢?这个要怎么处理
转成字节集 = 字节集:46{206,210,210,212,199,176,212,245,195,180,182,188,195,187,211,208,183,162,207,214,213,226,184,246,206,202,204,226,196,216,163,191,213,226,184,246,210,170,212,245,195,180,180,166,192,237}

所以你要是按这个字节集, 从起始位置单数开始搜索都不会有事, 但是从双数开始的话就变成了
字节集:45{210,210,212,199,176,212,245,195,180,182,188,195,187,211,208,183,162,207,214,213,226,184,246,206,202,204,226,196,216,163,191,213,226,184,246,210,170,212,245,195,180,180,166,192,237}
转成文本 = 乙郧霸趺炊济挥蟹⑾终飧鑫侍饽兀空飧鲆趺创怼?
找 要 这个字肯定找不到

而你第二串文本下标2的话, 转成文本后 = 乙郧霸趺炊济挥蟹⑾终飧鑫侍饽?这个要怎么处理
还能找到 要 这个字
回复

使用道具 举报

结帖率:75% (9/12)
发表于 2023-4-10 08:04:46 | 显示全部楼层   湖北省荆州市
我来告诉你为什么会出现-1,一个中文是2个字节,而你的i每次只是加1,这就导致他把中文分成了2部分,其实他找到的是个乱码,所以才会找不到
回复

使用道具 举报

结帖率:100% (30/30)

签到天数: 15 天

发表于 2023-4-10 08:38:03 | 显示全部楼层   四川省成都市
这不是BUG,中文和英文占用字节不同,所以寻找的位置就变化了。
回复

使用道具 举报

结帖率:92% (11/12)

签到天数: 3 天

发表于 2023-4-10 08:39:50 | 显示全部楼层   河北省邯郸市
全角符号属于特殊符号  在编程中会被赋予特殊功能
解决办法  子文本替换
有偿可以远程答疑
回复

使用道具 举报

签到天数: 27 天

发表于 2023-4-10 10:15:12 | 显示全部楼层   广西壮族自治区柳州市
1681092562579.png

当你的 i 位置在双字符的一半的位置上。刚好有一个单字符的字符给你对齐,那么后面的  “好”“吗” 就是完整的双字符。
当你后面全是双字符的时候 那么他会读取 前半段加后半段的 双字符,自然找不到 “好”和“吗”这两个,就会出现-1。
当i+1的时候就对齐了,自然再到了
i+2又不对齐了 自然就-1,如此循环


补充内容 (2023-4-10 10:17):
注:下面的逗号是双字符逗号,并没有加空格

补充内容 (2023-4-10 10:20):
双字符的 前半段和后半段都大于127,所以他会判断为后面再多读取一个字符,就会把后面单字符的逗号组合在一起
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表