我正在尝试用 utf-8 文件中的纯空白替换特殊字符。问题是当我尝试空格字符或 null 时,如果用其他特殊字符替换特殊字符,例如带有问号的菱形或小方块。
这是我用来替换其中一个字符的代码:
content = content.Replace((char)0XA0, ' ');
我也尝试过:
content = content.Replace((char)0XA0, ' ');
它也不起作用
我正在处理的文件可能会变得非常大,因此一次解析一个字符是行不通的。
寻求有关如何使其发挥作用的任何建议。
谢谢
您尝试过 content = content.Replace((char)0XA0, ' '); 吗?
处理特殊的 utf-8 字符时,您会很乐意使用 ushort uint 而不是 char,因为 utf-8 字符可以是一到四个字节的任何字符。
0xA0
不是字符的有效 UTF-8 表示形式。 字符 uA0 的实际 UTF-8 表示是 194 160(或 0xC2 0xA0)。
您可以使用字符串文字来代替
content = content.Replace('\u00A0', ' ');
使用 UTF-8 时,高于 127 的 UTF 代码将表示为代理对。
这很痛苦,但最终对我有用的是:
content = content.Replace('�', ' ');//表示 Char 63(这是我的 C# 应用程序中识别的不间断空格(Char 160)。)
希望这对某人有帮助。