开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

楼主: 啊浩呀
收起左侧

[完成] 特殊数字转换问题

 关闭 [复制链接]
发表于 7 天前 | 显示全部楼层   浙江省绍兴市
我是来拿易币的
回复

使用道具 举报

签到天数: 10 天

发表于 7 天前 | 显示全部楼层   河北省张家口市
易语言本身不支持Unicode, 需要使用字节集进行替换, 想要显示, 你需要使用支持Unicode的控件/支持库, 要么就替换后保存到文本文档, 比如这样

  
写到文件 (目录_取特定目录 (3)“\测试文本.txt”, { 255, 254, 112, 32, 32, 0, 185, 0, 32, 0, 178, 0, 32, 0, 179, 0, 32, 0, 116, 32, 32, 0, 117, 32, 32, 0, 118, 32, 32, 0, 119, 32, 32, 0, 120, 32, 32, 0, 121, 32, 32, 0, 128, 32, 32, 0, 129, 32, 32, 0, 130, 32, 32, 0, 131, 32, 32, 0, 132, 32, 32, 0, 133, 32, 32, 0, 134, 32, 32, 0, 135, 32, 32, 0, 136, 32, 32, 0, 137, 32, 0, 0 })

补充内容 (2025-9-3 19:50):
替换前还需要 编码_Ansi到Unicode ()把原文本转换成Unicode编码, 不然出来就是乱码
回复

使用道具 举报

签到天数: 10 天

发表于 7 天前 | 显示全部楼层   河北省张家口市
比如123456789替换45为⁴⁵
结果是123⁴⁵67890

  
子程序名返回值类型公开备 注
子程序1  
变量名类 型静态数组备 注
局_文本文本型 
局_字节集字节集 
局_待替换文本字节集 
局_文本 = “1234567890”
局_字节集 = 编码_Ansi到Unicode (局_文本)
局_待替换文本 = 编码_Ansi到Unicode (“45”)
局_待替换文本 = 取字节集左边 (局_待替换文本, 取字节集长度 (局_待替换文本) - 2)  ' 去掉结束符 {0,0}
局_字节集 = 子字节集替换 (局_字节集, 局_待替换文本, { 116, 32, 117, 32 }, , )
写到文件 (目录_取特定目录 (3)“\测试文本.txt”, { 255, 254 } + 局_字节集)  ' 添加BOM头

回复

使用道具 举报

结帖率:100% (3/3)

签到天数: 7 天

 楼主| 发表于 7 天前 | 显示全部楼层   河南省焦作市
houtian 发表于 2025-9-3 19:45
易语言本身不支持Unicode, 需要使用字节集进行替换, 想要显示, 你需要使用支持Unicode的控件/支持库, 要么 ...

那个帖子也是你给解决的,文本的我还能看懂都是一个字节,这个特殊字符跟文本那种还不一样,分割出来也是一个整的一个数组字节集..我就不会搞了
回复

使用道具 举报

签到天数: 10 天

发表于 7 天前 | 显示全部楼层   河北省张家口市
啊浩呀 发表于 2025-9-3 20:12
那个帖子也是你给解决的,文本的我还能看懂都是一个字节,这个特殊字符跟文本那种还不一样,分割出来也是 ...

易语言的文本是Ansi编码, 数字字母占1个字节, 而特殊符号是Unicode编码, 数字字母占两个字节, 所以需要先把源文本转换成宽字符在进行替换, 因为易语言不支持Unicode, 需要用字节集进行替换, 比较麻烦
回复

使用道具 举报

结帖率:100% (3/3)

签到天数: 7 天

 楼主| 发表于 7 天前 | 显示全部楼层   河南省焦作市
houtian 发表于 2025-9-3 20:10
比如123456789替换45为⁴⁵
结果是123⁴⁵67890

我是直接把特殊数字放到图片资源里然后用字节集_子替换直接能换这个效果,就是这个特殊数字组合不来,那个文本的组合了1400多个不重复的,这样放图片里太费事了,文本跟特殊数字都分组好,用计次循环就能一个一个换出来了,现在就是想把这个特殊数字也跟那个文本的一样那种分出来
回复

使用道具 举报

结帖率:100% (3/3)

签到天数: 7 天

 楼主| 发表于 7 天前 | 显示全部楼层   河南省焦作市
houtian 发表于 2025-9-3 20:22
易语言的文本是Ansi编码, 数字字母占1个字节, 而特殊符号是Unicode编码, 数字字母占两个字节, 所以需要先 ...

是算括号的吧,我11个字母30字节,数字占2个就是24个字节...这玩意儿调试输出看不见,搞不懂这个,多出来6个是什么东东,括号的话也对不上...这个搞了好久了真搞不懂
回复

使用道具 举报

结帖率:100% (3/3)

签到天数: 7 天

 楼主| 发表于 7 天前 | 显示全部楼层   河南省焦作市
houtian 发表于 2025-9-3 20:10
比如123456789替换45为⁴⁵
结果是123⁴⁵67890

编码_Ansi到Unicode (“45”)看这个好像有点启发..是不是可以把换出来的文本直接放到(“45”)这里边,直接替换...先出去下,一会儿在试试
回复

使用道具 举报

签到天数: 8 天

发表于 6 天前 | 显示全部楼层   安徽省合肥市
88888888888888888888888
回复

使用道具 举报

结帖率:100% (3/3)

签到天数: 7 天

 楼主| 发表于 6 天前 | 显示全部楼层   河南省焦作市
houtian 发表于 2025-9-3 20:10
比如123456789替换45为⁴⁵
结果是123⁴⁵67890

没啥用,这个试了试好像就是直接写了个45的换上去了,编码里边的换了只显示45,头大搞不懂了
回复

使用道具 举报

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

本版积分规则 致发广告者

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

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

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