.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

我应该如何解决这个编码问题?非常感谢。

顺便说一句,我的办公室设法打开并正确阅读了这份文件。

.NET中的字符编码

Excel编写文件的编码很可能是系统的默认编码,应该是windows-1250。使用Encoding.DefaultEncoding.GetEncoding("windows-1250")打开文件。它在波兰为我们工作。我不记得有任何关于从办公室出口csv的问题。

我似乎记得几年前用从office excel 导出的CSV遇到过这个问题

在网络上搜索,办公室似乎会根据你的办公室版本和你所在的地区使用不同的编码。

在我的情况下,我相信正确的编码是一些奇怪的东西,比如UTF7(wtf),所以试试看。否则,你可能会被困在尝试每个编码,直到它正确解码

另一种选择是寻找设计用于检测文件编码的工具,并在输入上运行它以确定编码