我有一个包含字母ø
的文件。当我用这个代码File.ReadLines(filePath)
从它读取时,我得到了一个问号而不是它。阅读文件时的C#编码
当我添加像这样的编码File.ReadLines(filePath, Encoding.GetEncoding(1252))
我得到ø
字符。
但默认编码已被设置为1252
,财产Encoding.Default.CodePage
返回1252
那么,为什么我必须指定编码为1252
一边读书,当默认一个已被设置为1252
?
还有一个问题,如果文件是Unicode,C#会识别它的格式,或者我必须指定Unicode编码?
File.ReadLines默认使用utf8进行编码 –
使用传统的8位代码页编码(如1252)是上个世纪的做法。你只需要停止这样做,今天没有剩下的理由不使用utf-8。正如你发现的那样,File.ReadLines()默认为Encoding.UTF8。删除文件或使用文本编辑器重新保存文件。记事本已经足够好了,在SaveAs对话框上编码组合框。 –
写入文件时是否也使用UTF-8默认值? – Aleksa