从UTF-8字符串中删除控制字符
我发现了这个问题,但它也删除了所有有效的utf-8
字符(返回一个空字符串,而有效的utf-8
字符加上控制字符)。 当我读到utf-8
, control characters
没有特定的范围,每个字符集都有自己的control characters
。
如何修改上述解决方案只删除control characters
?
我认为以下代码适合您:
public static string RemoveControlCharacters(string inString) { if (inString == null) return null; StringBuilder newString = new StringBuilder(); char ch; for (int i = 0; i < inString.Length; i++) { ch = inString[i]; if (!char.IsControl(ch)) { newString.Append(ch); } } return newString.ToString(); }
这是我的风格:
Regex.Replace(evilWeirdoText, @"[u0000-u001F]", string.Empty)
这将删除所有前31个控制字符。 来自 u001F的下一个hex值是 u0020空间。 在太空之前的一切都是换行和无效的废话。
相信我的角色: http : //donsnotes.com/tech/charsets/ascii.html
如果您计划将字符串用作查询字符串,则应在发送之前考虑使用Uri.EscapeUriString()
或Uri.EscapeDataString()
。 注意:您可能仍需要首先从char.IsControl()中提取任何内容?
上述就是C#学习教程:从UTF-8字符串中删除控制字符分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/985423.html