当前位置:   article > 正文

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

c# adb

问题描述

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问题应该也可以解决

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/891979
推荐阅读
相关标签
  

闽ICP备14008679号