安卓按键:读取txt开头出现未知字符的问题

很多时候 我们读取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
复制代码
posted @   点-滴  阅读(685)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示