簡體   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