【问题标题】:How to delete everything from string after character "/u"? [duplicate]如何从字符“/u”之后的字符串中删除所有内容? [复制]
【发布时间】:2020-07-21 10:15:09
【问题描述】:

嗨,我有一个奇怪的问题。这是我的代码:

string tmp = "20_29\u0013";

我怎样才能摆脱那个“\u0013”?


通常我会用子字符串或其他东西来做,但我对那个字符有一些问题 ---> \
有人可以帮我吗?

【问题讨论】:

  • 这是从哪里来的? \u0013 是一个转义序列,代表回车符
  • 它来自我的客户端,它正在向我的服务器发送数据。 TCP\IP
  • 从技术上讲,tmp = tmp.Replace("\u0013", ""); 其中"\u0013" 实际上是一个带有0x0013 代码的单个字符:'\r'。另一种可能性是tmp = tmp.TrimEnd();,它从字符串末尾删除空格(包括'\r'
  • 客户端是否发送`, u, 0, 0, 1, 3`?还是单个0x13 字节?这个转义序列是一个回车,也表示为\r。在所有单字节代码页 UTF8 中,它由单个字节0x13 表示。您可以使用 Strings.TrimEnd('\r', '\n'); 从任何字符串的末尾删除它
  • 那个 trimEnd 不起作用:(

标签: c#


【解决方案1】:

如果是单个字符,您可以使用tmp.TrimEnd('\u0013') 或如果是字符序列,则可以使用tmp.Replace("\\u0013", string.Empty) 来获取“20_29”部分:

【讨论】:

  • 一切都是 Unicode 字符。这个特殊字符虽然是 ASCII 字符 - 回车 \r
  • 是的,我的意思是 '\u0013' 是一个实心字符(不是字符串),所以你可以在上面使用 IndexOf
  • 或使用TrimEnd
  • 是的,TrimEnd 是这里的完美选择
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-11
  • 1970-01-01
  • 2012-10-19
  • 1970-01-01
  • 2014-03-26
  • 1970-01-01
  • 2021-07-09
相关资源
最近更新 更多