编码
2018-09-04
解决ubuntu server在tty本地终端下中文乱码显示棱形
安装 fbterm
sudo apt-get install fbterm
设置普通用户可以执行 fbterm 命令
sudo adduser username video #username为用户名,video为fbterm所在组
sudo chmod u+s /usr/bin/fbterm
设置纯文本终端自动执行 fbterm 命令 更改当前用户家目录下的 .bashrc 文件 在最后添加下面内容
alias fbterm='LANG=zh_CN.UTF-8 fbterm'
if [[ "$TERM" = linux | "$TERM" = linux ]] && [[ "$(ps otty= $)" =~ tty | "$(ps otty= $)" =~ tty ]] && type fbterm &>/dev/null; then
fbterm
fi
给fbterm 用别名,为了启动是中文环境, 否则中文文件名字不能正确显示, 然后进行判断,如果是纯文本终端就执行 fbterm
修改配置文件 ~/.fbtermrc
font-names=DejaVu Sans Mono,WenQuanYi Zen Hei Sharp
font-size=16
查看linux系统本地化编码信息
locale
参数解释:
LC_COLLATE 确定文本排序顺序,
LC_CTYPE 确定字符分类,例如,此设置是tolower(3C)正常工作所必需的,
LC_MESSAGES 确定系统消息的语言(通常你不想改变它 - 阅读它们很重要即使您的环境以任何方式受到损害),
LC_MONETARY 确定货币符号和名称,
LC_NUMERIC 确定数字数据的表示(例如,使用“。”或“,”作为小数分隔符),
LC_TIME 确定日期和时间表示和设置(例如,一周的第一天),
查看系统已经安装的编码类型
locale -a
环境语言修改
英语 C.UTF-8 中文 zh_CN.UTF-8
sudo locale-gen C.UTF-8
sudo update-locale LANG=C.UTF-8
查看文件编码类型
file -i filename
或者使用enca
enca -L zh filename
编码转换
enca
# 将文件编码转换为”UTF-8″编码
enca -L zh_CN -x UTF-8 filename
# 如果不想覆盖原文件可以这样
enca -L zh_CN -x UTF-8 < filename > filename2
iconv
iconv -f gb2312 -t UTF-8 -o filename2 filename
# -f encoding :把字符从encoding编码开始转换。
# -t encoding :把字符转换到encoding编码。
# -l :列出已知的编码字符集合
# -o file :指定输出文件
# -c :忽略输出的非法字符
# -s :禁止警告信息,但不是错误信息
# --verbose :显示进度信息
# -f和-t所能指定的合法字符在-l选项的命令里面都列出来了。
convmv
convmv -f GBK -t UTF-8 -r --nosmart --notest <目标目录>
# -f from
#
# -t to
#
# --nosmart 如果已经是utf-8 忽略
#
# -r 包含所有子目录
#
# --notest 不加表示只列出有什么需要转换的,不做实际转换