1

我有一个从俄罗斯数据库导出的大型 csv 文本文件。字符集是 OEM 866,对于我将用于处理该文件的大多数应用程序来说,它是不可读的。有没有办法将其转换为 UTF-8 或 ANSI?

我尝试的解决方案:

1) 在 Notepad++ 中识别字符集为 Cyrillic OEM 866。该文件现在可以在 Notepad++ 中读取。2) 在 Notepad++ 中,尝试转换为 UTF-8、UTF8 w/o BOM、ANSI。自然,Notepad++ 会读取它刚刚创建的转换后的“ANSI”或“UTF”文件。但没有其他程序可以做到。

如果这是一个愚蠢的问题,我深表歉意——因为我对这个主题真的不太了解。

4

2 回答 2

1

如果 Notepad++ 可以读取 UTF-8 编码文件,尤其是它创建的文件,那么支持 UTF-8 编码文件的其他应用程序也应该能够读取相同的文件。并非所有应用程序都支持文本文件中的 UTF-8 BOM,但如果您仍然遇到存在和不存在 BOM 的问题,那么您应该在怀疑 UTF-8 文件存在问题之前查看这些应用程序的问题。这些应用程序一开始可能不会以 UTF-8 格式加载文本文件,如果发生这种情况,它们就会错误地解释文件内容。假设使用操作系统默认 Ansi 编码而不是 UTF-8 或其他编码,许多应用程序倾向于加载 8 位文本文件,因此您可能需要告诉这些应用程序将文本文件加载为 UTF-8,如果这样的选项可用(如果没有这样的选项,这就是 BOM 发挥作用的地方)。

于 2013-08-04T21:38:15.893 回答
-1

如果您使用的是 Unix,tchrist 的 iconv 听起来是最好的选择,但由于您使用的是 Notepad++,我认为您使用的是 Windows。

您可能不想要手动解决方法,但是由于没有其他人发布了更好的解决方法,所以这里有一个对我有用的杂物。

在记事本++中打开文件。确保正确设置了编码(单击“编码->字符集->西里尔字母-> OEM 866)我知道您自己已经做到了这一点,但它是为了他人的利益而存在的。

全选,复制。打开普通的旧记事本。粘贴。

单击“文件 --> 另存为”,在保存之前,确保保存按钮旁边的编码选项显示为 UTF-8。(ANSI 是默认值,但它没有西里尔字符)

我不知道为什么在 Notepad++ 中保存不起作用,但我和你有同样的经历。

于 2013-08-29T14:01:14.017 回答