将编码从unknown-8bit转换为us-ascii不受支持。

8

我正在尝试使用iconv将未知的8位编码转换为us-ascii。我已经运行了以下命令:

$ iconv -f unknown-8bit -t us-ascii file.txt > file1.txt

但是它显示了一个错误消息。

iconv: conversion from `unknown-8bit' is not supported
Try `iconv --help' or `iconv --usage' for more information.

有其他方法可以进行转换吗?谢谢!
2个回答

11

你可以使用cat -v命令,例如:

cat -v file.txt > file1.txt

在大多数平台上,这将生成一个ASCII文件。


重音字符(é,è,ê,...)在新文件中丢失了。有没有办法保留它们? - Psddp
那些不是ASCII码。在快速测试中,我看到它们变成了“M-i,M-h,M-j,...”,这是预期的结果。 - Thomas Dickey
@ThomasDickey,为什么期望这种编码方式,并且您是否有它们所代表的列表? - Guilherme Sampaio
重音字符编码范围为160-255,而US-ASCII仅定义了32-126(可打印字符),因此任何处理转换的程序都将使用某些解决方法来表示超出范围的代码。 "M"表示元数据,在terminfo和curses中使用。 iconv是后来才出现的,因此它并不是"M"的起源。 - Thomas Dickey

1

对于带有重音符号的文本,您可以像这篇文章中提到的那样在vim中设置:将编码和文件编码设置为UTF-8

在我的情况下,我遇到了'…'、'−'和'-'等问题,我在vim中打开文件,进行了更正,并在vim中运行。

:set fileencoding=utf-8

然后保存它,我的文件是utf-8编码!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接