繁体   English   中英

c#:如何从字符串中删除“损坏的”字符? Ø

[英]c#: How do i remove "broken" chars from a string? �

我的应用程序运行 cmd 命令并将 output 保存在字符串中。 每当 output 中有德语变音符号时,内容看起来像这样:

Id Name                 MainWindowTitle     
14892 TextInputHost        Microsoft Text Input Application                                                
6712 VirtualBox           Oracle VM VirtualBox Manager                                                    
2124 VirtualBoxVM         Win10_2 [wird ausgef�hrt] - Oracle VM VirtualBox   

如何替换/删除损坏的字符? 像�,因为它不允许我在 base64 中编码字符串而不会丢失信息。

string activeProcesses = SysHelper.GetForegroundProcesses(); //runs a cmd-process and returns the string with the broken character above

好的,所以问题是,“损坏的”字符阻止我将字符串编码为 base64。 如果我这样做了,则 base64 字符串已损坏,并且在解码时,我只收到了外星人的迹象。

我修复了它,通过使用

string processStrClean = Encoding.Default.GetString(Convert.FromBase64String(activeProcesses));

代替

string processStrClean = Encoding.UTF8.GetString(Convert.FromBase64String(activeProcesses));

所以,实际上,是 UTF8 编码破坏了它。 使用默认编码后,我可以将字符串编码为 base64 字符串,然后对其进行解码,而不会丢失信息。

永远记住,孩子们,真正的英雄一旦找到问题的解决方案,就会在堆栈溢出时回答他们自己的问题。 也许有人会在 5 年内找到这个线程,而您可以挽救他的一天。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM