在c#中用纯空白替换特殊字符?

问题描述 投票:0回答:4

我正在尝试用 utf-8 文件中的纯空白替换特殊字符。问题是当我尝试空格字符或 null 时,如果用其他特殊字符替换特殊字符,例如带有问号的菱形或小方块。

这是我用来替换其中一个字符的代码:

content = content.Replace((char)0XA0, ' ');

我也尝试过:

content = content.Replace((char)0XA0, ' ');

它也不起作用

我正在处理的文件可能会变得非常大,因此一次解析一个字符是行不通的。

寻求有关如何使其发挥作用的任何建议。

谢谢

c# replace char
4个回答
1
投票

您尝试过 content = content.Replace((char)0XA0, ' '); 吗?


0
投票

处理特殊的 utf-8 字符时,您会很乐意使用 ushort uint 而不是 char,因为 utf-8 字符可以是一到四个字节的任何字符。


0
投票

0xA0
不是字符的有效 UTF-8 表示形式。 字符 uA0 的实际 UTF-8 表示是 194 160(或 0xC2 0xA0)。

您可以使用字符串文字来代替

content = content.Replace('\u00A0', ' ');

使用 UTF-8 时,高于 127 的 UTF 代码将表示为代理对。


0
投票

这很痛苦,但最终对我有用的是:

content = content.Replace('�', ' ');//表示 Char 63(这是我的 C# 应用程序中识别的不间断空格(Char 160)。)

希望这对某人有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.