用于转换 .csv 文件中字符编码的 Unix 命令

用于转换 .csv 文件中字符编码的 Unix 命令

我需要一个 Unix 命令将 UNICODE 格式的 .csv 文件转换为 ANSI 格式。

该文件是从 Cognos 环境导入的,我无法对 cognos 中的格式进行任何更改。

答案1

您可以使用 iconv 在编码之间进行转换

iconv -f utf-8 -t ascii oldfile > newfile

答案2

  • 我注意到我的也有类似的问题,但无法找到它是什么类型的编码。

  • Notepad++ 告诉我它是 ANSI,所以上面的命令对我有帮助。

  • 现在有很多类型的 ANSI,所以检查的最好方法是键入

    iconv-l

  • 这列出了所有编码格式名称。所以就我而言,我将其范围缩小为:

    *iconv -l|grep -i ansi
    ANSI_X3.4-1968//
    ANSI_X3.4-1986//
    ANSI_X3.4//
    ANSI_X3.110-1983//
    ANSI_X3.110//
    MS-ANSI//*
    
  • 因为我不知道具体的 ANSI,所以我尝试了几乎所有的 ANSI,直到我发现它是 MS-ANSI - 我应该知道,因为我从 Microsoft 系统收到了该文件。然后我使用这个命令进行转换:

    iconv -f MS-ANSI -t utf-8 样本.csv > 样本UTF8.csv

  • 因此,以同样的方式列出 iconv -l 中的 UNICODE 类型,然后颠倒顺序即可获得您想要的 ANSI 类型,这很简单。

相关内容