从 ascii 转换为 utf-8 格式 - iconv 不起作用

Avi*_*ash 2 solaris unicode

我需要从 ASCII 文本格式转换为 UTF-8。

以下是我通过iconv命令执行的操作:

[root@main tmp]# cat File1
1
5
6
[root@main tmp]# 文件 File1
文件 1:ASCII 文本
[root@main tmp]# iconv -f ascii -t utf-8 File1 > File2
[root@main tmp]# 文件 File2
文件 2:ASCII 文本

(仍然是 ASCII 不是 utf-8)

关于如何将其从 ascii 转换为 utf-8 的任何建议?

max*_*zig 5

这里有两件事相关:

  1. fileSolaris 上的股票实用程序很糟糕
  2. 7 位 ASCII 字符是字节兼容包含在 UTF-8 中。这意味着当您的输入文件仅包含 7 位 ASCII 字符时,不会发生实际转换。甚至一个好的file实用程序也会显示 ASCII。

因此,您可能希望以某种“扩展”的 8 字节 ASCII 编码转换文件。例如latin1。然后你必须用 iconv 指定它,例如:

$ iconv -f latin1 -t utf8 file1 > file2
Run Code Online (Sandbox Code Playgroud)

然后,您可以像这样比较输出:

$ cmp file1 file2
$ hexdump ...
$ $EDITOR file2
Run Code Online (Sandbox Code Playgroud)

像 vim 这样的编辑器提供了一些命令来查看某些字符的字节值、动态更改使用的编码等。