找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8460|回复: 3

[教程源码] 【紫猫插件】解决读写文件乱码问题——紫猫插件教程

[复制链接]
  • 打卡等级:武林至尊

1087

主题

2143

回帖

4337

积分

院长

鲜花
9
猫粮
7529
QQ
发表于 2018-9-7 16:42:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
前言

大家在用按键自带的File插件在读写文件时,难免会遇到乱码的情况,这是因为通过电脑记事本保存的中文汉字默认编码是GB2312,而File插件却只能读取UTF-8编码的内容。



思路

既然是编码错误导致了乱码问题,那么我们只要让编码正确就行了。按键自带的File插件无法设置编码,但是紫猫插件的文件读写全部支持自定义编码,而且还支持自动识别编码。



下载

紫猫插件下载地址:https://zimaoxy.com/b/t-77-1-1.html


也可以加入QQ群:7333555后到群文件共享中下载紫猫插件,点击加入群聊【紫猫✿按键精灵后花园】



命令

zm.FileEncode()可以获取到文件的编码格式。


zm.FileInit()可以设置后面所有的紫猫文件读写命令使用的编码格式。


zm.FileRead()支持自定义编码读取文件内容。


zm.FileWrite()支持zm.FileInit()设置的编码写入内容。



实例

[按键精灵] 纯文本查看 复制代码
Import "zm.luae" //导入插件,只需执行一次
zm.Init  //初始化插件,只需执行一次

//例子: 读取正确编码后设置紫猫插件的File系列命令默认编码, 解决中文乱码问题, 这是最快速有效的方法

//在电脑记事本里写入一串中文内容, 然后传到手机里
Dim path = "/sdcard/电脑文件.txt"

//读取文件的编码, 并设置File系列命令使用该编码
//注意, 插件并没有改变文件编码, 只是自动转换了读写时的编码
//注意, 设置编码只对紫猫插件的文件读写系列命令有效, 对File插件无效!
//3.1835以上版本才有第二个参数直接设置编码, 旧版本请用zm.FileInit()来实现
Dim code = zm.FileEncode(path, True)
TracePrint "得到并设置文件编码为:", code

//读取该文件内容, 注意必须用紫猫插件的读写, 不支持File插件!
Dim txt = zm.FileRead(path)
TracePrint "得到文件内容为:", txt

//按照设置的默认编码, 追加写入该文件内容
zm.FileWriteAppend path, "追加写入中文内容, 不会乱码"

//紫猫插件的其他文件读写命令也会按照设置的默认编码对文件进行操作


楼主热帖

0

主题

5

回帖

5

积分

学前班

鲜花
0
猫粮
7
发表于 2021-3-11 19:30:46 | 显示全部楼层
1111111111111111

0

主题

1

回帖

1

积分

学前班

鲜花
0
猫粮
8
发表于 2021-4-16 11:43:36 | 显示全部楼层
原本是utf8的文件编码  会卡识别  等很久都不返回答案
  • 打卡等级:武林至尊

1087

主题

2143

回帖

4337

积分

院长

鲜花
9
猫粮
7529
QQ
 楼主| 发表于 2021-4-16 13:53:25 | 显示全部楼层
素V 发表于 2021-4-16 11:43
原本是utf8的文件编码  会卡识别  等很久都不返回答案

如果文件很大, 判断会很久的, 下版本将会考虑加入快速检测模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|紫猫编程学园

GMT+8, 2024-12-23 13:08

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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