linux 中设置当前用户的系统默认编码为 UTF-8 格式解决 vim 乱码问题的方法参考

在使用 linux 的终端工具 SecureCRT 或 Xshell 时,当SVN 提交输入日志为中文时提示失败无法提交

svn ci -m ” “

即当两个引号之间输入中文即提交失败或根本无法输入中文

根据提示大概意思是,提交的字符不是 UTF-8 格式。

那么如何解决呢?参考步骤如下:

1. 首先保证 SecureCRT 或 Xshell 等终端工具是 UTF8 格式的。以 SecureCRT 为例,设置方法为:选项-会话选项-终端-外观的字符编码,选择 utf-8

2. 在 /home/yourname 下面打开/建立一个文件 .vimrc

$ vim ~/.vimrc

在该文件底部增加如下代码

set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936
set fileencoding=utf-8
set nohls
set nu
filetype on
syntax on
set tabstop=4
set shiftwidth=4
set autoindent
set smartindent
set showmatch
set ruler

注释参考:

如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,你可以在 ~/.vimrc 文件中添加以下内容

set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936

这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照 fileencodings 提供的编码列表尝试,如果没有找到合适的编码,就用 latin-1(ASCII) 编码打开。

3. 然后执行如下命令

$ export LANG=zh_CN.UTF-8

如果想在 SSH 客户端启动的时即执行export LANG=zh_CN.UTF-8,可在/home/yourname 下的 .bash_profile 文件末尾增加该句命令

$ vim ~/.bash_profile

 

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

# 有一些实用工具虽然位于 /usr/sbin or /sbin,但实际上普通用户也可以用,比如 ifconfig。
export PATH=/usr/sbin:/sbin:$PATH:.

if [ -d ~/bin ] ; then
PATH=~/bin:”${PATH}”
fi

export PATH
unset USERNAME

# EDITOR 是非常古老的环境变量了,一些软件需要通过它来决定使用何种编辑器编辑资料
export EDITOR=vim

# time 命令的输出格式有时候需要调整一下
export TIME=’\nreal\t%es\nuser\t%Us\nsys\t%Ss’

# 关闭终端的 Ctrl+s Ctrl+q 流控功能。有时候不小心按了 Ctrl+s 会导致终端假死,其实是流控了。
stty -ixoff -ixon

# 如果登录 shell 不是 screen,就自动启动 screen。
ppid=`awk ‘{print $4}’ /proc/$$/stat`
name=`cat /proc/$ppid/cmdline | awk ‘{print $1}’`
if [ $name == ‘sshd:’ -a $COLUMNS -gt 79 ]; then
screen -wipe
exec screen -D -RR
fi
# 设置默认编码为 UTF-8
export LANG=zh_CN.UTF-8

点赞 (1)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code