用c#中的纯空白替换特殊字符?
我试图用utf-8文件中的纯空白替换一个特殊字符。问题是,当我尝试使用空格字符或null时,如果用其他特殊字符替换特殊字符,例如带问号的菱形或小正方形 下面是我用来替换其中一个字符的代码: content=content.Replace((char)0XA0,“\0”) 我也尝试过: content=content.Replace((char)0XA0',) 而且它也不起作用 我处理的文件可能会变得相当大,因此一次解析一个字符是不可行的 寻找任何关于如何让它工作的建议用c#中的纯空白替换特殊字符?,c#,replace,char,C#,Replace,Char,我试图用utf-8文件中的纯空白替换一个特殊字符。问题是,当我尝试使用空格字符或null时,如果用其他特殊字符替换特殊字符,例如带问号的菱形或小正方形 下面是我用来替换其中一个字符的代码: content=content.Replace((char)0XA0,“\0”) 我也尝试过: content=content.Replace((char)0XA0',) 而且它也不起作用 我处理的文件可能会变得相当大,因此一次解析一个字符是不可行的 寻找任何关于如何让它工作的建议 谢谢你试过content=
谢谢你试过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
替换某些内容可能是个坏主意-您的标题似乎暗示'
(字符为code32
或0x20
,而不是0x0
)。是的,我编辑了我也尝试过的条目“”,但它不起作用。您没有显示读/写文件的代码…很有趣。但是0x0A在utf-8文件中(当我在记事本++中打开文件时,这就是显示的内容),我必须保留它utf-8,因为其中有utf-8的中文字符。但我会试试你的建议。谢谢..NET在utf-16内部存储字符串。如果您正在使用字符串操作内容,那么它们是utf-16。在这一点上,您需要确保当您将其写回文件时,它是以utf-8编码的。