gpt4 book ai didi

c# - 如何正确解码cmd输出?

转载 作者:太空狗 更新时间:2023-10-29 17:28:33 24 4
gpt4 key购买 nike

ProcessStartInfo startInfo = new ProcessStartInfo("CMD.exe");
startInfo.Arguments = "/c " + URL;
Process p = new Process();
startInfo.RedirectStandardInput = true;
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.CreateNoWindow = true;
p = Process.Start(startInfo);
string original = p.StandardOutput.ReadToEnd();
string result1 = Encoding.ASCII.GetString(Encoding.ASCII.GetBytes(original));
string result2 = Encoding.BigEndianUnicode.GetString(Encoding.BigEndianUnicode.GetBytes(original));
string result3 = Encoding.Unicode.GetString(Encoding.Unicode.GetBytes(original));
string result4 = Encoding.UTF32.GetString(Encoding.UTF32.GetBytes(original));
string result5 = Encoding.UTF7.GetString(Encoding.UTF7.GetBytes(original));
string result6 = Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(original));

cmd 输出包含 russian 字母,我尝试过的所有编码都无法正确解码这些字母。请帮忙。

我试过:

startInfo.StandardOutputEncoding = Encoding."all possible encodings";

但没有帮助。

有什么想法吗?

最佳答案

老问题,但没有可能的正确答案。

这里是:

process.StartInfo.StandardOutputEncoding = Encoding.GetEncoding(850);

850标准命令页面。因此,使用该应用程序的用户将获得字符,正如他在使用命令行本身时所期望的那样。

这个为我解决了德国操作系统上的所有符号问题。


OEM 代码页:

437 - 英语
708 - 阿拉伯语 (ASMO)
720 - 阿拉伯语 (Microsoft)
737 - 希腊语
775 - 波罗的海
850 - 西欧(多语言拉丁语 I)
852 - 中欧(拉丁语 II)
855 - 西里尔字母
857 - 土耳其语
858 - 西欧(多语言拉丁语 I + 欧元)
860 - 葡萄牙语
861 - 冰岛语
862 - 希伯来语
863 - 加拿大法语
864 - 阿拉伯语 (IBM)
865 - 北欧
866 - 俄语
869 - 希腊语
1254 - 土耳其语

关于c# - 如何正确解码cmd输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16803748/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com