正在读取从MS Excel创建的CSV文件。当我在记事本中打开它时看起来不错,但在Notepad ++中,我将编码从ANSI
更改为UTF8
,并且出现了一些非打印字符。从文件读取时出错 - 编码问题
具体为xFF。 - (十六进制值)
在我的C#应用程序中,这个字符在读取文件的时候会引起一个问题,所以有什么办法可以对此做一个String.replace('xFF', ' ');
?
更新
我发现SO此链接,事实证明这是回答我的问题,但不是我的问题。 Link
正在读取从MS Excel创建的CSV文件。当我在记事本中打开它时看起来不错,但在Notepad ++中,我将编码从ANSI
更改为UTF8
,并且出现了一些非打印字符。从文件读取时出错 - 编码问题
具体为xFF。 - (十六进制值)
在我的C#应用程序中,这个字符在读取文件的时候会引起一个问题,所以有什么办法可以对此做一个String.replace('xFF', ' ');
?
我发现SO此链接,事实证明这是回答我的问题,但不是我的问题。 Link
猜猜你的Unicode表示是错误的。试试这个
string foo = "foo\xff";
foo.Replace('\xff',' ');
我不确定“破解”编码是件好事。我认为即使不完美,提拉克的答案也会更好。更好的办法是了解/理解OP的文件转换过程中使用的所有编码是什么。 – Guillaume
既然我无法控制文件来自哪里,那么在读取之前可以确定编码吗? – IEnumerable
不,你必须知道它。http://stackoverflow.com/a/90956/649524 – Tilak
记事本如何做 - > http://blogs.msdn.com/b/oldnewthing/archive/2007/04/17/ 2158334.aspx – Tilak