【问题标题】:Converting from ANSI to UTF-8 using script使用脚本从 ANSI 转换为 UTF-8
【发布时间】:2017-06-05 08:36:57
【问题描述】:

我创建了一个脚本(.sh 文件)来将 CSV 文件从 ANSI 编码转换为 UTF-8。 我使用的命令是:

iconv -f "windows-1252" -t "UTF-8" $csvname -o $newcsvname

我从另一个 Stack Overflow 帖子中得到这个。 但iconv 命令似乎不起作用。 Notepad++中输入文件内容的快照

下面 firstcsv 文件的快照

下面第二个 csv 文件的快照,

编辑:我尝试将有问题的输入 CSV 文件内容减少到几行(类似于第一个文件),现在它可以正常转换。那么文件内容本身有问题吗?如何检查?

【问题讨论】:

  • 你指的是哪个输入文件?什么不工作?脚本本身或iconv?
  • @Inian 我似乎无法弄清楚。因为我在另一个文件上尝试了这个脚本,并且转换得很好。我不确定,但输入文件 ($csvname) 是否有问题?
  • 您能告诉我们您说的是哪种(格式)文件吗?如果您的第二个发现是某种二进制格式,它就无法工作。否则,我们将需要足够的信息来重现问题以便为您提供帮助。
  • @Fred 两个文件都是 .csv 文件。我还编辑了我的 OP 以包含第二个文件的屏幕截图
  • @Inian 你能提一下还需要什么其他信息吗?我会尽力提供他们。我正在使用 Putty 运行这个脚本,它将输入文件的编码从 ANSI 转换为 UTF-8。输入文件名存储在 $csvname

标签: bash shell csv unix utf-8


【解决方案1】:

您可以使用python chardet Character Encoding Detector 来确保现有的字符编码格式。

iconv -f {字符编码} -t utf-8 {文件名} > {输出文件名}

这应该可行。还要检查文件中是否存在任何垃圾字符,这可能会导致转换错误。

【讨论】:

    猜你喜欢
    • 2015-10-06
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2014-07-02
    • 2019-02-10
    相关资源
    最近更新 更多