很多时候 我们读取 txt 用 traceprint 输出后 最头上会莫名其妙多出一个问号 但是你用问号匹配他 却匹配不到 就是 1 个未知字符 这个到底是什么 怎么避免出现这个东西呢
这个主要是 txt 文件存在一个 bom 头字符串 但是 安卓状态下 txt 却不认识这个字符串 这个 bom 头在电脑是不可见的
处理办法
1 使用类似 noytepad++ 之类的编辑工具把 txt 文件的 bom 头去掉 然后再把这个 txt 传到安卓上 开始脚本处理
2 脚本每次读取 txt 会检测文件内容开始是否存在 bom 头字符串 存在则替换掉 不存在更好
第一个办法 我就不用演示了 自己去处理下即可
第二个 我是用一个函数来实现处理的 可以参考下
- Function 文本文件格式化操作 (文件路径)
- Dim 读取内容
- 读取内容 = Trim(file.Read(文件路径))
- // 判断开头 3 个字符是否是 bom 头
- If Mid(读取内容, 1, 3) = Chr(239) & Chr(187) & Chr(191) Then
- // 有则替换为空 然后重新写入内容 这个地方不确定是否除了第一行之外还可能存在 bom 头 应该没那么巧
- file.Write 文件路径, Replace(读取内容, Chr(239) & Chr(187) & Chr(191), "")
- End If
- // 如果 txt 里面最后不是以 \ r\n 结尾的 就自动添加一个回车换行符 来实现这个 也解决了替换最后一行 不写 \ r\n 会替换找不到的情况
- If trim(读取内容)<>""and Right(读取内容, 2) <>"\r\n" Then
- file.Write 文件路径, 读取内容 & "\r\n"
- End If
- End Function
来源: http://www.bubuko.com/infodetail-2659162.html