Pat*_*ryk 31 character-encoding text
我有一个txt文件:
$ file -i x.txt
x.txt: text/plain; charset=unknown-8bit
$ file x.txt
x.txt: Non-ISO extended-ASCII text, with CRLF line terminators
Run Code Online (Sandbox Code Playgroud)
还有一些字符编码不正确:
trwa³y, sta³y, usuwaæ
Run Code Online (Sandbox Code Playgroud)
如何将此文件的编码更改为 UTF-8 ?到目前为止,我已经尝试了以下方法:
$ iconv -f ASCII -t UTF-8 x.txt
puiconv: illegal input sequence at position 4
Run Code Online (Sandbox Code Playgroud)
也许我应该以某种方式使用extended ASCII
( high ASCII
) 但在iconv
的编码列表中找不到它。
Gil*_*il' 41
file
告诉您“非 ISO 扩展 ASCII 文本”,因为它检测到这是:
你必须弄清楚这个文件似乎是哪种编码。你可以试试Enca的自动识别。您可能需要通过以文本的语言告诉它来将其推向正确的方向。
enca x.txt
enca -L polish x.txt
Run Code Online (Sandbox Code Playgroud)
要转换文件,请传递-x
选项:enca -L polish x.txt -x utf8 >x.utf8.txt
如果您不能或不想使用 Enca,您可以手动猜测编码。环顾四周告诉我这是波兰语文本,单词是 trwa?y, sta?y, usuwa?,所以我们正在寻找翻译在哪里³
??
和æ
??
. 这看起来像latin-2或latin-10或更可能(假设您正在查看为latin1 的“非 ISO” CP1250。要将文件转换为 UTF-8,您可以使用recode或iconv。
recode CP1250..utf8 <x.txt >x.utf8.txt
iconv -f CP1250 -t UTF-8 <x.txt >x.utf8.txt
Run Code Online (Sandbox Code Playgroud)