SVN遇到Can't convert string from 'UTF-8' to native encoding
刚配好mysql,svn co代码的时候遇到问题
svn: Can't convert string from 'UTF-8' to native encoding:
svn: platform/console-framework/portal/img/zhanzhang_logo - ?\226?\148?\130?\206?\149.png
这明显是中文的图片,不是我的项目。。
先检查下机器的语言环境
$ locale LANG=en_US LC_CTYPE="en_US" LC_NUMERIC="en_US" LC_TIME="en_US" LC_COLLATE="en_US" LC_MONETARY="en_US" LC_MESSAGES="en_US" LC_PAPER="en_US" LC_NAME="en_US" LC_ADDRESS="en_US" LC_TELEPHONE="en_US" LC_MEASUREMENT="en_US" LC_IDENTIFICATION="en_US" LC_ALL=
嗯,全是en_US,有中文乱码是肯定的
按照查到的方法,如果直接执行
export LANG="zh_CN.UTF-8"
那么修改的将是本次连接的语言环境,关闭后再连接还是会有语言的报错,那么长久的方式是修改.bashrc文件
修改~/.bashrc,加入
export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 export LANGUAGE=en_US.UTF-8
然后
source ~/.bashrc
再执行locale,发现配置变化了
LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=en_US.UTF-8
然后继续执行刚才的svn co,这次正常check完了。
这时对执行locale后显示的语言环境有些不懂,就查了查,分别代表一下意义
LC_CTYPE="en_US.UTF-8" #用户所使用的语言符号及其分类 LC_NUMERIC="en_US.UTF-8" #数字 LC_TIME="en_US.UTF-8" #时间显示格式 LC_COLLATE="en_US.UTF-8" #比较和排序习惯 LC_MONETARY="en_US.UTF-8" #货币单位 LC_MESSAGES="en_US.UTF-8" #信息主要是提示信息,错误信息, 状态信息, 标题, 标签, 按钮和菜单等 LC_PAPER="en_US.UTF-8" #默认纸张尺寸大小 LC_NAME="en_US.UTF-8" #姓名书写方式 LC_ADDRESS="en_US.UTF-8" #地址书写方式 LC_TELEPHONE="en_US.UTF-8" #电话号码书写方式 LC_MEASUREMENT="en_US.UTF-8" #度量衡表达方式 LC_IDENTIFICATION="en_US.UTF-8" #对自身包含信息的概述
其中两个比较特殊的
LANG #系统语言 LC_ALL #如果设置,值将覆盖所有其他的locale设定
在各个设置之间有一个优先级的关系:LC_ALL > LC_* >LANG,也就是说,LC_ALL的等级最高,而LANG为默认设置,至于LC_*,可以选择自己需要的配置