在Linux上转换UTF-8和ISO-8859之间的文件

时间:2017-08-02 15:35:46

标签: linux iconv

每当我遇到Unicode时,一切都行不通。我在Linux上,我从Windows获得这些文件:

$file *
file1: UTF-8 Unicode text
file2: ISO-8859 text
file3: ISO-8859 text

在我发现文件有不同的编码之前,没有任何工作。我想让我的生活变得轻松,并以相同的格式拥有它们:

iconv -f UTF-8 -t ISO-8859 file1 > test
iconv: conversion to `ISO-8859' is not supported
Try `iconv --help' or `iconv --usage' for more information.

我尝试转换为ISO,因为只有1次转换+当我在gedit中打开这些ISO文件时,德语字母“ü”显示得很好。好的,接下来尝试:

iconv -f ISO-8859 -t UTF-8 file2 > test
iconv: conversion from `ISO-8859' is not supported
Try `iconv --help' or `iconv --usage' for more information.

但显然这不起作用。

2 个答案:

答案 0 :(得分:4)

ISO-8859-x(Latin-1)编码只包含非常有限的字符,您应该始终尝试编码为UTF-8以使生活更轻松。

utf-8(Unicode)是ISO 8859的超集,因此您不会将UTF-8转换为ISO 8859并不会感到惊讶

似乎命令file只提供了非常有限的文件编码信息

您可以尝试猜测来自ISO-8859-1或ISO-8859-15的编码,或者@hobbs评论中建议的2~14编码

您可以通过iconv

获得iconv -l支持的编码

如果生活在猜测真正的文件编码时不容易,this silly script might help you out :D

答案 1 :(得分:0)

与其他答案一样,您可以列出支持的格式

iconv -l | grep 8859 

grep 将节省您查找支持/支持的编码版本的时间。您可以在我的示例中提供 <number>ISO 或编码中的任何预期字符串。