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

  • 相关阅读:
    Codeforces Round 546 (Div. 2)
    Codeforces Round 545 (Div. 2)
    Codeforces Round 544(Div. 3)
    牛客小白月赛12
    Codeforces Round 261(Div. 2)
    Codeforces Round 260(Div. 2)
    Codeforces Round 259(Div. 2)
    Codeforces Round 258(Div. 2)
    Codeforces Round 257 (Div. 2)
    《A First Course in Probability》-chaper5-连续型随机变量-随机变量函数的分布
  • 原文地址:https://www.cnblogs.com/kramer/p/3824921.html
Copyright © 2011-2022 走看看