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

用c#中的纯空白替换特殊字符?,c#,replace,char,C#,Replace,Char,我试图用utf-8文件中的纯空白替换一个特殊字符。问题是,当我尝试使用空格字符或null时,如果用其他特殊字符替换特殊字符,例如带问号的菱形或小正方形 下面是我用来替换其中一个字符的代码: content=content.Replace((char)0XA0,“\0”) 我也尝试过: content=content.Replace((char)0XA0',) 而且它也不起作用 我处理的文件可能会变得相当大,因此一次解析一个字符是不可行的 寻找任何关于如何让它工作的建议 谢谢你试过content=

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

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

content=content.Replace((char)0XA0,“\0”)

我也尝试过:

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

而且它也不起作用

我处理的文件可能会变得相当大,因此一次解析一个字符是不可行的

寻找任何关于如何让它工作的建议


谢谢你试过content=content.Replace((char)0XA0,,)

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

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

您可以改为使用字符串文字

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

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

可能是您的读写代码错误。。。另外,用
\0
替换某些内容可能是个坏主意-您的标题似乎暗示
'
(字符为code
32
0x20
,而不是
0x0
)。是的,我编辑了我也尝试过的条目“”,但它不起作用。您没有显示读/写文件的代码…很有趣。但是0x0A在utf-8文件中(当我在记事本++中打开文件时,这就是显示的内容),我必须保留它utf-8,因为其中有utf-8的中文字符。但我会试试你的建议。谢谢..NET在utf-16内部存储字符串。如果您正在使用字符串操作内容,那么它们是utf-16。在这一点上,您需要确保当您将其写回文件时,它是以utf-8编码的。