赞
踩
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]"
,
""
);
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问题应该也可以解决
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。