zoukankan      html  css  js  c++  java
  • linux 中文乱码问题

    linux的字符界面默认不支持中文,所以你显示中文和编辑中文往往会是乱码,今天小研究了一下。

    首先要明白的问题是,乱码问题其实最本质就是编码和解码不符合。 比如你往linux上传了一个中文文件,但是用cat 或者 more去看的时候发现是乱码。这是因为你的中文文件编码可能是utf-8,可能是GBK等等,但是cat 和 more有可能是用什么ascii等去解码。 ok,这样自然会出现乱码了。 所以,遇到乱码问题我们要考虑的事情很简单,文件的编码方式是什么,你处理文件的解码方式又是什么。  网上有太多的关于乱码的解决方案,如果不了解本质只是一个方案一个方案的去尝试,很可能永远解决不了问题

    ok,以我的例子来看。

    我是用putty 登陆一个远程的centos 机器,在上面cat 或者 more 一个叫aa.txt的文件。    这个例子中最开始我也是遇到了乱码问题,但是仔细分析一下,解决方案很简单,首先弄清楚我的文件编码方式是什么,我的编码方式是utf-8. 因为这个文件我是用notepadd++特意保存成utf-8的,所以这一点毋庸置疑。 那么解码呢?  解码方是我的Putty软件,现在我只要让putty按照utf-8来解码就好了。 ok, go to putty-window-transalation  这里有个选项叫remote character set, 设置成utf-8. 现在你去cat aa.txt就是正常的中文了。

    但是另外要注意的是,如果你用是screen 可能中文又不能正常显示了, 因为cat的结果可能会先被screen处理一下然后再发给putty。 

    如果你是用vi去编辑中文文件,有下面3个选项要注意

    encoding 这个决定了vi缓存中的编码方式,也就是说你用vi打开一个文件的时候使用的编码。如果enconding是utf8 你就可以在vi打开文件后正常看到里面的中文字符

    fileencoding 这个决定了 vi怎么看待它要处理的文件,如果fileencoding是ascii 那么vi在关闭文件的时候就会保存成ASCII

    fileencondings 这个决定了 vi怎么辨认文件的编码方式,设置成fileencodings=utf-8,ascii,latted等  vi在打开文件的时候会先探测文件是不是utf-8 如果不是就继续探测是不是ascii 探测完毕把结果赋值给fileencoding

  • 相关阅读:
    Android 程序架构: MVC、MVP、MVVM、Unidirectional、Clean...
    asp.net发布到IIS中出现错误:处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
    反射中使用 BindingFlags.IgnoreCase
    JQuery判断数组中是否包含某个元素$.inArray("js", arr);
    Sql日期时间格式转换
    c#组元(Tuple)的使用
    逆向最大匹配分词算法C#
    [WEB API] CLIENT 指定请求及回应格式(XML/JSON)
    Jquery 将表单序列化为Json对象
    JS调试加断点
  • 原文地址:https://www.cnblogs.com/kramer/p/3824921.html
Copyright © 2011-2022 走看看