首页 > 解决方案 > 使用 C# 从字符串替换 Unicode 字符

问题描述

string str = "our guests will experience \u001favor in an area";
 bool exists = str.IndexOf("\u001", StringComparison.CurrentCultureIgnoreCase) > -1;

我想在字符串中查找并替换此字符 \u001。我几乎没有尝试解决,但仍然无能为力。

请解决此问题。提前感谢您的宝贵帮助。

标签: c#asp.net-mvcasp.net-mvc-4

解决方案


在 C# 规范的深处,您可以找到以下内容:

[注意:使用 \x 十六进制转义序列产生式可能容易出错且难以阅读,因为 \x 后面的十六进制数字数量可变。例如,在代码中:

字符串好 = "\x9好文本";

string bad = "\x9Bad text";

一开始可能会出现两个字符串中的前导字符相同(U+0009,制表符)。事实上,第二个字符串以 U+9BAD 开头,因为单词“Bad”中的所有三个字母都是有效的十六进制数字。作为风格问题,建议避免使用 \x 以支持特定的转义序列(在此示例中为 \t)或固定长度的 \u 转义序列。尾注]

并且:

unicode 转义序列::

\u 十六进制数字 十六进制数字 十六进制数字 十六进制数字

\U 十六进制数字 十六进制数字 十六进制数字 十六进制数字 十六进制数字 十六进制数字 十六进制数字 十六进制数字

为了进一步简化, \u 后跟 4 或 8 个十六进制符号 -而不是 3。您的字符串被解释为“我们的客人将在某个区域体验\u001f 风味”。


推荐阅读