linux默认编码
⑴ linux 部分中文文件乱码怎么解决
linux文件名、文件内容乱码,主要原因是windows上的中文编码默认是gbk,而linux默认中文编码为utf-8,由于编码不一致,所以导致乱码问题。
为了解决这个乱码,需要对文件进行转码,具体如下:
1、前提保证已安装了convmv;
2、具体convmv的用法:
convmv
–f
源编码
–t
新编码
[选项]
文件名
一般常用参数:
-r
递归处理子目录
--notest
真正进行操作,默认情况下是不对文件进行真实操作的,只是一个预览
--list
显示所有支持的编码
--unescap
可以做一个转义
3、比如我们有一个utf8的文件名,要求转换成gbk编码,命令如下:
convmv
–f
utf-8
–t
gbk
–notest
文件名
也可以使用linux下最好用的编码转换工具iconv来进行转码操作。
例子:将gbk编码的文件转换成utf-8
iconv
-f
gbk
-t
utf-8
gbkfile.txt
>
utf8file.txt
⑵ 为什么WINDOWS下的汉字到了LINUX下乱码了
Windows下的文字到了Linux下乱码原因是Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8,编码格式不相同导致的乱码。
几种解决办法如下:
1、在Windows上用记事本把文件,选择另存为编码方式改为 UTF-8;
iconv-fencoding-tencodinginputfile
#比如将一个GBK编码的文件转换成UTF-8编码
iconv-fUTF-8-tGBKfile1-ofile2
#转码后,在Linux上面就不会乱码了
⑶ linux怎么修改默认编码
Windows的默认编码为GBK,Linux的默认编码为UTF-8。在Windows下编辑的中文,在Linux下显示为乱码。为了解决此问题,修改Linux的默认编码为GBK。方法如下:
方法1:
vi /etc/sysconfig/i18n
默认为:
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
修改为:
LANG="zh_CN.GBK"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh"
SYSFONT="latarcyrheb-sun16"
方法2:
vi /etc/profile
export LC_ALL="zh_CN.GBK"
export LANG="zh_CN.GBK"
运行locale指令得到当前系统编码设置的详细资料。
一、locale的五脏六腑
1、 语言符号及其分类(LC_CTYPE)
2、 数字(LC_NUMERIC)
3、 比较和排序习惯(LC_COLLATE)
4、 时间显示格式(LC_TIME)
5、 货币单位(LC_MONETARY)
6、 信息主要是提示信息,错误信息, 状态信息, 标题, 标签, 按钮和菜单等(LC_MESSAGES)
7、 姓名书写方式(LC_NAME)
8、 地址书写方式(LC_ADDRESS)
9、 电话号码书写方式(LC_TELEPHONE)
10、度量衡表达方式(LC_MEASUREMENT)
11、默认纸张尺寸大小(LC_PAPER)
12、对locale自身包含信息的概述(LC_IDENTIFICATION)。
二、理解locale的设置
设定locale就是设定12大类的locale分类属性,即 12个LC_*。除了这12个变量可以设定以外,为了简便起见,还有两个变量:LC_ALL和LANG。
它们之间有一个优先级的关系:LC_ALL > LC_* > LANG
可以这么说,LC_ALL是最上级设定或者强制设定,而LANG是默认设定值。
三 具体设定locale的方法(zh_CN.UTF-8、zh_CN.GBK)
freebsd的设置:
1.GDM登录改为终端登录后startx启动图形桌面
2.在~/.cshrc中增加如下语句,(根据自己使用的shell进行相应设置)
setenv LANG zh_CN.GBK
setenv LC_ALL zh_CN.GBK
setenv LC_CTYPE zh_CN.GBK
3.修改/etc/fstab的默认值:
linux 设置:
1.修改/etc/sysconfig/i18n文件,LANG="zh_CN.UTF-8"或LANG="zh_CN.GBK"
普通用户修改~/.profile
...
export LANG zh_CN.GBK
...
2.修改/etc/fstab的默认值