[C#]执行adb命令并将返回写入txt文件,返回信息中有63隐藏字符

问题描述

c# 通过System.Diagnostics库 Process 调用adb.exe,执行一系列adb指令,然后将获取到的返回值存入txt文件当中,当在处理这些数据的时候,发现某些字符在txt文件中是正常的,但是在command line当中前面包含63。

在xxx.txt中该字符串为

iv_in-2-34

 复制该字符串到cmd.exe 显示为

63iv_in-2-34

问题解决过程

过滤非字母字符-问题未解决

63在ASCII中对应 "?",专门过滤掉 "?",问题无法解决

 s= s.Replace("?", "");

 替换所有不可见字符为空字符,ASCII表的1到31以及127,问题无法解决

s = Regex.Replace(s, @"[\x01-\x1F,\x7F]""");

修改保存txt文件时的编码格式-问题解决 

1. 在将返回值写入txt文件时,使用接口如下,因此txt 目前使用格式为UTF8

using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write))
            {
                fs.SetLength(0);
                using (StreamWriter sw = new StreamWriter(fs, Encoding.UTF8))
                {

                 ..........

                }

              }

2.查询adb.exe 使用编码格式为GBK,UTF8 代码为65001

 C:\Users\nick>chcp
活动代码页: 936 //936代表GBK

3.修改保存txt 是文件格式为 Encoding.ASCII时,该问题可以解决

或者在执行前,执行指令chcp 65001问题应该也可以解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值