开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 10400|回复: 69
收起左侧

[易语言支持库] 【支持库改造计划】编码转换支持库Ex3.0

[复制链接]
结帖率:100% (5/5)
发表于 2023-1-16 13:40:29 | 显示全部楼层 |阅读模式   重庆市重庆市
本帖最后由 心冷、鱼儿 于 2023-1-16 13:56 编辑

已经完成对 官方编码转换支持库2.0 的改造!
下面会放性能对比图。

改造:
     1、升级iconv库到最新的1.17,官方使用的为1.9.1版本
     2、修改 编码转换()   参数<1>的名称为“被转换数据”,类型为“通用型(all)”。可以使用文本型和字节集型数据,其它数据类型会报错
     3、修改 编码转换_转换()   参数<2>的名称为“被转换数据”,类型为“通用型(all)”。可以使用文本型和字节集型数据,其它数据类型会报错。
     4、添加 编码转换Ex()   命令,在 编码转换() 的基础上返回通用型,由参数<4>的名称为“返回文本型”,类型为“逻辑型(bool)”,初始值为“假”。结果返回文本型,默认返回字节集型。确定返回类型。
     5、添加 编码转换_转换Ex()   命令,在 编码转换_转换() 的基础上返回通用型,由参数<3>的名称为“返回文本型”,类型为“逻辑型(bool)”,初始值为“假”。结果返回文本型,默认返回字节集型。确定返回类型。
     6、添加 编码转换_文件Ex()   命令,将指定的文件从一种编码转换为另一种编码,如果执行失败,将返回假,本命令相当于“编码转换_打开()”“编码转换_转换()”“编码转换_关闭()”三个命令的组合使用。
     7、添加 iconv流 转换,其实就是使用原版API,可以参考例程里面的 流失文件编码转换()   命令的实现,里面用iconv 的API 完成了从文件流读取转换编码再写出的流程。其它回调流,类似 HPSOCKET 数据回调,也是一样的。只要把 iconv_open,iconv,iconv_close,这三个命令分开调用。
    8、iconv流转换 用支持库原版命令也可以实现 iconv_open=编码转换_打开(),iconv=编码转换_转换/编码转换_转换Ex(),iconv_close=编码转换_关闭()
   
下面是原版库和改造库的性能对比

VC6 官方版本的 WINAPI 就是 VC2017版本的自用,是我自己用的模块里面的命令。
iconv = 编码转换()
iconv 流式=编码转换_打开(),编码转换_转换/编码转换_转换Ex(),编码转换_关闭()
iconv API = 单独调用的 libiconv 库dll文件
iconv 支持库 API =iconv_open, iconv,iconv_close
QQ图片20230112095328.png QQ图片20230116093438.png

注意!!!经测试,当前库在大文本转换方面有点吃亏
QQ图片20230116132606.png
经过百du和谷谷后发现,该库目的为流式处理大文本,像我测试这样操作是不太符合该库的使用规范的。正常的使用方式是例程里面的 流失文件编码转换()   命令的实现!!请合理使用该库,避免无谓的性能损失,我也在研究如何修改让其性能提升。


现放出第一个版本测试。如有问题请留言。


使用前,请先备份原版支持库文件!然后切换连接器到VC2017!!
使用前,请先备份原版支持库文件!然后切换连接器到VC2017!!
使用前,请先备份原版支持库文件!然后切换连接器到VC2017!!





iconv.7z (1.54 MB, 下载次数: 170)

评分

参与人数 5好评 +5 精币 +7 收起 理由
rectdbszy + 1 + 2 iconv库难找,一起发出来吧
fzh9394 + 1 感谢分享,很给力!~
远赴 + 1 + 2 YYDS~!
吃泡面加不起蛋 + 1 + 1 感谢大佬的奉献
陈大奶么么哒 + 1 + 2 感谢分享,很给力!~

查看全部评分

签到天数: 23 天

发表于 2023-1-16 13:45:14 | 显示全部楼层   新疆维吾尔自治区乌鲁木齐市
谢谢分享  
回复 支持 反对

使用道具 举报

结帖率:100% (7/7)

签到天数: 21 天

发表于 2023-1-16 13:47:28 | 显示全部楼层   广东省佛山市
用不上,支持一下
回复 支持 反对

使用道具 举报

结帖率:95% (84/88)

签到天数: 3 天

发表于 2023-1-16 14:01:00 | 显示全部楼层   英国
前排支持
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)

签到天数: 11 天

发表于 2023-1-16 14:03:18 | 显示全部楼层   四川省成都市
前排支持!!
回复 支持 反对

使用道具 举报

签到天数: 20 天

发表于 2023-1-16 14:10:44 | 显示全部楼层   四川省成都市
回复 支持 反对

使用道具 举报

结帖率:0% (0/3)

签到天数: 24 天

发表于 2023-1-16 14:29:50 | 显示全部楼层   重庆市重庆市
用不上,支持一下
回复 支持 反对

使用道具 举报

结帖率:100% (5/5)
发表于 2023-1-16 14:57:09 | 显示全部楼层   广东省深圳市
有没有源码呢
回复 支持 反对

使用道具 举报

发表于 2023-1-16 16:09:44 | 显示全部楼层   广东省深圳市
支持 !!!!!!!!!!!!!!!!!!!!!!!
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)

签到天数: 10 天

发表于 2023-1-16 17:26:05 | 显示全部楼层   广东省惠州市
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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