.NET中的字符编码
本文关键字:编码 字符 NET | 更新日期: 2023-09-27 18:25:52
我已将excel 2007文档导出为CSV(用分号分隔)。我使用的是捷克语办公室2010和捷克语windows 7。
当我在.net C#中读取文件时,带有特殊捷克符号的文本已损坏。这是我使用的时候
类似于string[]行=文件.readalllines(路径);(来自System.IO.File)
所以我想我需要特别提供正确的编码,对吧?所以我尝试了:
string[] lines = File.ReadAllLines(path,encoding);
编码变量的定义类似
Encoding encoding = Encoding.UTF8 for example.
所有选项都无效。最奇怪的是,其中一些,比如编码。Unicode甚至抛出了
IndexOutOfRandgeException
我应该如何解决这个编码问题?非常感谢。
顺便说一句,我的办公室设法打开并正确阅读了这份文件。
Excel编写文件的编码很可能是系统的默认编码,应该是windows-1250。使用Encoding.Default
或Encoding.GetEncoding("windows-1250")
打开文件。它在波兰为我们工作。我不记得有任何关于从办公室出口csv的问题。
我似乎记得几年前用从office excel 导出的CSV遇到过这个问题
在网络上搜索,办公室似乎会根据你的办公室版本和你所在的地区使用不同的编码。
在我的情况下,我相信正确的编码是一些奇怪的东西,比如UTF7(wtf),所以试试看。否则,你可能会被困在尝试每个编码,直到它正确解码
另一种选择是寻找设计用于检测文件编码的工具,并在输入上运行它以确定编码