【问题标题】:convert UTF-8 (US-ASCII) to ISO8859-1 using iconv command使用 iconv 命令将 UTF-8 (US-ASCII) 转换为 ISO8859-1
【发布时间】:2021-03-08 09:02:36
【问题描述】:

我无法更改已安装 XAMPP 且位于 AWS EC2 实例上的 ubuntu 服务器(版本:Ubuntu 18.04.5 LTS)上文件的文件编码。我以 root 身份登录,可以编辑、更改和删除文件。我以 root 身份登录,文件的所有者是 root。

我尝试了不同版本的 iconv:

iconv -f US-ASCII index.php -t ISO-8859-1 > indexisoiso.php

iconv -f utf-8 -t iso-8859-1 index.php

iconv -c -f US-ASCII -t ISO-8859-1 index.php > indexindex2.php

创建了新文件并且没有显示错误,但是,当我再次检查文件编码(“file --mime-encoding index.php”或“chardet index.php”)时,它又回到了 US-ASCII。

我也试过改vim中的编码,还是不行:

:写++enc=iso-8859-1 index.php

我在 Visual Studio 中通过 SSH 连接到我的 EC2。我可以(在授予自己权限后)在那里更改文件编码并保存文件。但是,当我关闭并重新打开文件时,它又回到了 US-ASCII(实际上,在 VS 代码中,它显示“UTF-8”。从我读到的“UTF-8”和“US-ASCII”对我来说是相等的目的)。

有谁知道为什么我不能在我的 ubuntu 服务器上更改文件的编码?有没有人遇到过类似的问题?

【问题讨论】:

  • 什么字符有问题?你从哪里读到 UTF-8 和 US-ASCII 是相等的?
  • 我不确定哪个字符有问题。我输入命令,它跳到我的终端中的新行,当我再次检查编码时,它就是以前的样子。当我使用只写有“hello”的文件时也是如此。我尝试了 iconv,但是所有生成的文件都有“US-ASCII”。
  • 例如这里:stackoverflow.com/questions/11303405/…(引用:“ASCII 是 UTF-8 的子集,所以所有 ASCII 文件都已经 UTF-8 编码。”)

标签: ubuntu encoding terminal character-encoding


【解决方案1】:

由于 ISO-8559-1 扩展了 ASCII 并且文件不包含任何 ISO-8559-1 字符,ubuntu 根本无法将其识别为 ISO-8559-1,而是显示为 ASCII。我将一些 ISO-8559-1 字符添加到文件 (äöü) 并再次运行 iconv 命令。它起作用了:在转换之前添加 äöü 字符后,现在显示文件以 ISO-8559-1 编码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-31
    • 2012-07-03
    • 2012-10-29
    • 1970-01-01
    • 2010-09-22
    • 2012-05-16
    • 1970-01-01
    • 2017-08-23
    相关资源
    最近更新 更多