首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从UTF-8字符串中删除控制字符

从UTF-8字符串中删除控制字符
EN

Stack Overflow用户
提问于 2011-07-23 17:52:52
回答 3查看 28.7K关注 0票数 15

我发现了this问题,但它也删除了所有有效的utf-8字符(返回一个空字符串,而有有效的utf-8字符和控制字符)。在我读到有关utf-8的文章时,control characters没有特定的范围,每个字符集都有自己的control characters

如何将above解决方案修改为仅删除control characters

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-23 18:03:13

我认为以下代码将为您工作:

代码语言:javascript
运行
复制
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();
}
票数 22
EN

Stack Overflow用户

发布于 2014-04-02 15:12:40

这就是我的工作方式:

代码语言:javascript
运行
复制
Regex.Replace(evilWeirdoText, @"[\u0000-\u001F]", string.Empty)

这将删除所有前31个控制字符。从\u001F开始的下一个十六进制值是\u0020,即空格。空格之前的一切都是换行符和null的废话。

相信我的角色:http://donsnotes.com/tech/charsets/ascii.html

票数 23
EN

Stack Overflow用户

发布于 2013-01-05 06:17:06

如果您计划将该字符串用作查询字符串,则应考虑在将其发送出去之前使用Uri.EscapeUriString()Uri.EscapeDataString()。注意:您可能仍然需要先从char.IsControl()中提取任何内容?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6799631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档