LC_ALL=ru_RU.CP1251 less ~/t/show_discounts.js
显示无意义字符,而不是按应查看的方式显示此 CP1251 文件。
如何使less
指定编码正常工作?
Debian Linux,Gnome 终端,系统配置为en_US.UTF-8
.
答案1
运行less
为
LC_ALL=ru_RU.CP1251 less file
如果ru_RU.CP1251
您的系统上存在语言环境(查看是否LC_ALL=ru_RU.CP1251 locale charmap
返回 CP1252),则表明less
您位于该语言环境中,这意味着以file
该字符集进行编码和终端使用该字符集。
如果终端模拟器是在字符集为 UTF-8 的语言环境中启动的,则它将期望以 UTF-8 编码的字符,因此不知道如何处理less
向其抛出的那些 CP1251 编码字符。
您还需要在该区域设置中启动终端模拟器,或者您可以使用luit
它来进行翻译(假设终端的字符集是 UTF-8)。
或者您可以使用iconv
将文件转换为终端的区域设置字符集:
iconv -f CP1251 < file | less