[英]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.