Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 5238|回复: 0

Linux操作系统下终端乱码的终极解决方案 export LANG=zh_CN.UTF-8 export LANG=en_US

[复制链接]
  • TA的每日心情
    奋斗
    2024-11-24 15:47
  • 签到天数: 804 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726782
    发表于 2021-4-7 16:36:38 | 显示全部楼层 |阅读模式

    转载:http://hi.baidu.com/xuehuo_0411/blog/item/98559cf46107573fbd3109f6.html

     

     

    在使用linux的终端工具SecureCRT的时候,每次提交SVN想输入中文日志的时候总是输不了中文。

    svn ci -m "" 这时候两个引号之间就是没有办法输入中文。

    后来跟其他同学请教,找了一个终极解决方案

    要先保证SecureCRT是UTF8格式的,设置:选项-会话选项-终端-外观的字符编码,选择utf-8

    首先,在/home/yourname下面建立一个文件.vimrc,然后这个文件中写入如下代码


          1 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
          2 set termencoding=utf-8
          3 set encoding=utf-8
          4 set fileencodings=ucs-bom,utf-8,cp936
          5 set fileencoding=utf-8
          6 set nohls
          7 set nu
          8 filetype on
          9 syntax on
         10 set tabstop=4
         11 set shiftwidth=4
         12 set autoindent
         13 set smartindent
         14 set showmatch
         15 set ruler
         16

     

    上代码的大概含义就是终端支持UTF8,也就是可以支持中文。

    然后再命令行执行如下命令

    [yourname@root]$ export LANG=zh_CN.UTF-8

    再试试

    [yourname@root]$ svn ci -m "提交中文提示"

    如果想SSH客户端启动的时候,就执行export LANG=zh_CN.UTF-8,需要在/home/yourname寻找.bash_profile文件,然后用vim修改之

    14:14 [x334@web2.dev.yourname]$ vim .bash_profile

          1 # .bash_profile
          2 
          3 # Get the aliases and functions
          4 if [ -f ~/.bashrc ]; then
          5     . ~/.bashrc
          6 fi
          7 
          8 # User specific environment and startup programs
          9 
         10 PATH=$PATH:$HOME/bin
         11 
         12 export PATH
         13 unset USERNAME
         14 export LANG=zh_CN.UTF-8

    保存后,重新启动SSH客户端,这样以后每次启动客户端的时候就自动执行export LANG=zh_CN.UTF-8。

    大功告成鸟。

    Linux中使用export命令设置环境变量

     

    下面复制一篇网上的文章

     

    export LANG=zh_CN.UTF-8 
    export LANG=en_US

    ===============================================================================================

    ===============================================================================================

    初入linux的程序员们,经常会受到乱码的问候。可谓“始乱终弃”。因为乱码,并且最终放弃了linux的不在少数。好吧,言归正传,先看看各类乱码是怎么形成的。 

      中文字符乱码 

      这种情况一般是安装了中文控制端,但没有启用中文应用造成的。只需要启动相应软件即可,如zhcon。或者是启用了相应软件,但字符集不对,需设置相应字符集,例如export LANG=zh_CN.UTF-8 

      ORACLE安装界面乱码 

      虽说ORACLE支持多国语言,会根据环境变量自动选择字符集,但中文安装好像还有问题,不过10.2以后的版本好像没有该问题了,具体可以执行命令export LANG=en_US来设置为英文字符集环境 

      英文字符乱码 

      一般该字符乱码多出现在cat了二进制的文件时,因为二进制文件中多有控制码,会导致终端界面乱码,通常解决方法是用reset终端复位命令解决问题 

      其他伪终端乱码 

      有时是通过SSH进入远程LINUX服务器时,cat一个core文件,并且用reset命令都不能成功,怎么办?很简单,看以下试验,首先cat一个python的编译文件 

      oracle@linux-suse:~> cat fibo.pyc 

      m? 

      {?鯡c@sd 

      Zd 

      ZdS(cCs:d\}}x'  jo G   }}qWdS(Nii(ii(tatbtn(RRR((tfibo.pytfibs 

      cCsIg}d\}}x0  jo" i    }}qW S(Nii(ii(tresultRRRtappend(RRRR((Rtfib2 s 

      N(RR(RR((Rt?s oracle@linux-suse:~> VT102VT102 

      \-bash: VT102VT102: command not found 

      oracle@linux-suse:~> 

      在SSH终端上看到是的乱码,提示符都是乱的,可以用以下命令恢复 

      oracle@linux-suse:~> tput sgr0 

      乱码问题产生的原因是SSH的问题,因为在其他终端下,cat用样一个文件,不会产生乱码,于是试验乱码产生的原因 

      oracle@linux-suse:~> ^N 

      只要用ctrl+v,ctrl+n就使用屏幕乱码,当然恢复后再试验 

      oracle@linux-suse:~> echo -e '\xe' 

      屏幕再次乱码,好,再恢复 

      oracle@linux-suse:~> echo -e '\xf' 

      以上是需要盲打的,因为屏上看到的是乱码,最终问题产生的原因是十六进制字符E产生的,解决也很简单,十六进制字符F即可

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-12-22 18:51 , Processed in 0.071396 second(s), 27 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表