前言
由于有同学知道手机版文本文件要UTF-8格式的,所以会新建记事本输入内容后,另存为UTF-8文件。但是,读取后发现文本内容开头出现了问号,而且无法直接删除!这是因为记事本是UTF-8 BOM格式,而按键要求的是UTF-8格式,两者区别在于多了一个BOM字符。
思路
有三种解决方法,第一种是换个其他文本编辑器,把文件保存为UTF-8无BOM格式,例如vscode之类的。第二种是读取文件后,删除BOM字符,该字符的十六进制ASCII为EF BB BF。最后一种方法是直接使用紫猫插件的读写文件,已内置处理了此问题。
命令
zm.FileRead()解决读取内容开头有问号的问题,紫猫插件的其他读取文件命令都会自动解决这个问题。
实例
第一种是直接用文本编辑器处理文件,所以无需代码例子。
- //按键自带File插件读取解决例子
- Dim BOM = Chr(239) & Chr(187) & Chr(191) //定义BOM标识符
- Dim txt = File.Read("/sdcard/电脑文件.txt") //读取文件
- txt = Replace(txt, BOM, "") //替换BOM为空字符串
- TracePrint txt
复制代码- //紫猫插件读取自动解决例子
- Import "zm.luae" //导入插件,只需执行一次
- zm.Init //初始化插件,只需执行一次
- //在电脑记事本里写入一串中文内容, 并另存为UTF-8格式, 然后传到手机里
- Dim path = "/sdcard/电脑文件.txt"
- //读取该文件内容, 注意必须用紫猫插件的读写, File插件会读取到问号内容
- Dim txt = zm.FileRead(path)
- TracePrint "得到文件内容为:", txt
- //紫猫插件的其他文件读取命令也会自动处理问号情况
复制代码