linux下cat 和 more 默认采用什么编码来显示文件?以及能否为more命令用指定的编码查看文件?

来源:百度知道 编辑:UC知道 时间:2024/06/28 00:41:33
环境变量LANG=C,查看一个编码为gb2312的文件,使用cat命令能正常显示,但是没有分页;使用more命令显示乱码,但是有分页。现在的问题是:

linux下cat 和 more 默认采用什么编码来显示文件?以及能否为more命令用指定的编码查看文件?
To:stablish
我是在window下用SecureCRT工具telnet到linux操作系统的服务器的.
我刚测试了一下,对cat命令而言,只需要保证SecureCRT的显示编码和服务器上文件的编码一致就可以正确地显示。可以说cat命令显示的编码和环境变量LANG没有任何关系,我这样认为不知是否正确?
然而对more命令,即使我保证了SecureCRT的显示编码和服务器上文件的编码一致,也不能正确地显示,必须要改变环境变量LANG才可以,但是具体怎么怎么设置还没有一个具体的规律。
就拿问题中的例子来说,对more命令我必须把LANG改成了en_US、SecureCRT的显示编码改写gb2312,才能正确地显示出来。但是这里为什么是en_US而不是别的?这一点实在是让人疑惑。
我又用了一个含有中文的编码为UTF-8的xml文件来做测试。cat命令猜测通过。但是more命令我在保证SecureCRT的显示编码是UTF-8的前提下,无论我怎么改环境变量LANG都不能正确地显示,尝试过的LANG的值有C、en_US、en_US.UTF-8、zh_CN.UTF-8,这个又该如何解决呢?

我不清楚你的环境是什么 (发行版,字符模式命令行,还是图形模式终端)
以我在字符模式命令行下的测试, 如果不加载zhcon或者fbterm之类的程序
cat more less等都无法正常显示gb2312字符, 不管LANG的设置是什么

而且这些程序不存在什么默认输出 都是调用gettext库来实现的

怪不得 这个跟远程服务器上的locale无关, 主要看你的secureCRT里面的字符编码设置 这个具体我也不太清楚了,因为很少用secureCRT , 但是我用putty测试了一下,文件是GB2312编码,远程是LANG=C ,putty设置为use font encoding , cat less more都正常显示汉字
换GBK测试也通过 ...不知道你的怎么回事

小机怎么能出现这种问题!不好意识化境变量俺没学明白 好运

MAN CAT MAN MORE 哈哈 问人不如问自己 你这问题太BT了