• cygwin中中文输出与输出的处理




    作者: libuse 出自: http://www.linuxdiyf.com
    想了很多种措施要运转我的一个目次下的文件,可是怎样都不可,全部的路末了都锁在了怎样在cygwin下输出我的中文目次名?试了很多网上的措施终是不克不及成行,厥后在达人的辅导下,终于失路归返,真可谓路途是迂回的,出路是光亮的。

    其真实cygwin下不克不及输出中文的缘故起因是中文字符的最高位都是1,以是被当作节制符措置了。ok,我们现看下怎样做,然后再看看为什么这么做。

    怎样做:要是你的用户目次(/home/XXX)下有了: .inputrc , .bashrc/.bash-profile这两个或三个文件,那么恭喜你,你不用树立了,只需做删改就可以了。要是没有,那么贫穷坚苦你要树立这三个文件。在Linux下,我们有多种树立文件的措施,可是要是你没有在cygwin下装有vi等编纂器,那么您可以按如下提供的方法树立这三个文件:

    (1)从/ect/skel中将这三个文件拷贝到你的用户主目次下。

    (2)运用notepad来树立这三个文件,可是很主要的一点是,请您在保存时必定要存成ANSI编码的.txt文件,这一点请必定要记住。

    ok,文件如今是树立了,那么就剩下怎样删改文件了:(请按ANSI编码花样编写)

    (1)请在.inputrc文件中添加:

    set meta-flag on

    set convert-meta off

    set output-meta on

    set input-meta on

    set completion-ignore-case on 

    (2)请在.bashrc 或.bash-profile文件中添加:

    alias ls='ls --show-control-chars --color=auto'

    export LESSCHARSET=latin1

    删改后请保存成ANSI编码的花样。

    ok,前功尽弃了。

    如今就看看为什么要这么做,cygwin下不克不及输出中文的缘故起因是中文字符的最高位都是1,以是被当作节制符措置了,meta-flag,convert-meta等选项的意思可以参考man bash。复杂的说,设置meta-flag on允许从终端输出中文,不然的话终端会过滤失踪每个字节的最高位;convert-meta off是设置不将中文字符转化为转义序列,由于中文是两个字节默示的,第一字节的最高位是1扫尾的,可以能同于某个转义字符;output-meta on便是允许向终端直接输出中文;input-meta on便是允许向终端直接输出中文;set completion-ignore-case on这个可以在 echo A的时分按了后就能由readline给你补出来abc.txt;–show-control-chars也一样。




    版权声明: 原创作品,允许转载,转载时请务必以超链接情势标明文章 原始出处 、作者信息和本声明。不然将穷究功令责任。

  • 相关阅读:
    实例说明Java中的null(转)
    Java中初始变量默认值
    Java中finally关键字的使用(转)
    java作用域
    import static和import的区别
    static class
    [APUE]标准IO库(下)
    [APUE]标准IO库(上)
    [APUE]文件和目录(下)
    [APUE]文件和目录(中)
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1973801.html
Copyright © 2020-2023  润新知