首页 > 解决方案 > 从字符串中删除不需要的 Unicode 字符

问题描述

我已经查看了很多与此相关的相关 SO 帖子。我有这个格式错误的字符串,其中包含我想要删除的 unicode 字符。

string testString = "\0\u0001\0\0\0����\u0001\0\0\0\0\0\0\0\u0011\u0001\0\0\0\u0004\0\0\0\u0006\u0002\0\0\0\u0005The\u0006\u0003\0\0\0\u0017boy\u0006\u0004\0\0\0\tKicked\u0006\u0005\0\0\0\u0013the Ball\v";

我想要以下输出:

The boy kicked the Ball

我怎样才能做到这一点?

我查看了以下内容(没有太大成功):

  1. 如何从字符串中去除非 ASCII 字符?(在 C# 中)
  2. 转换 unicode 字符 (C#) 测试
  3. 如何从 C# 中的字符串中删除 '\0'?
  4. 从列中删除不需要的字符(与 SQL Server 相关,因此与我的问题无关)

标签: c#

解决方案


testString = Regex.Replace(testString, @"[\u0000-\u0008\u000A-\u001F\u0100-\uFFFF]", "");

或者

testString = Regex.Replace(testString, @"[^\t\r\n -~]", "");


推荐阅读