如何在linux下查看文件编码以及修改编码
查看文件编码 在Linux中查看文件编码可以通过以下几种方式: 1在Vim中可以直接查看文件编码 :set fileencoding 即可显示文件编码格式。 如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在 ~/vimrc 文件中添加以下内容: set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936 这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。 2 enca (如果你的系统中没有安装这个命令,可以用sudo yum install -y enca 安装 )查看文件编码 $ enca filename filename: Universal transformation format 8 bits; UTF-8 需要说明一点的是,enca对某些GBK编码的文件识别的不是很好,识别时会出现:
Ubuntu下修改系统默认语言为简体中文:
1首先安装中文的支持,安装:language-selector,language-env,language-pack-zh包
sudo apt-get install language-selector language-env language-pack-zh2然后使安装生效,配置区域
dpkg-reconfigure localesGenerating locales
en_USUTF-8 done
zh_CNUTF-8 up-to-date
zh_HKUTF-8 up-to-date
zh_SGUTF-8 up-to-date
zh_TWUTF-8 up-to-date
Generation complete
Current default timezone: 'US/Eastern'
Ubuntu里字符编码设置:
1修改编码配置文件
gedit /var/lib/locales/supportedd/local#在文件中添加如下内容:
zh_CNGBK GBK
zh_CNGB2312 GB2312
zh_CN UTF-8 UTF-8
2强制更新,使设置生效
sudo dpkg-reconfigure --force localesLinux 下查看文件字符编码和转换编码 如果你需要在 Linux 中操作 windows 下的文件,那么你可能会经常遇 到 文 件 编 码 转 换 的 问 题 。 Windows 中 默 认 的 文 件 格 式 是 GBK(gb2312),而 Linux 一般都是 UTF-8。下面介绍一下,在 Linux 中如何查看文件的编码及如何进行对文件进行编码转换。
一,查看文件编码: 在 Linux 中查看文件编码可以通过以下几种方式:
1在 Vim 中可以直接查看文件编码 :set fileencoding 即可显示文件编码格式。 如果你只是想查看其它编码格式的文件或者想解决用 Vim 查看文件乱 码的问题,那么你可以在 ~/vimrc 文件中添加以下内容: set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936 这样, 就可以让 vim 自动识别文件编码 (可以自动识别 UTF-8或者 GBK 编码的文件) ,其实就是依照 fileencodings 提供的编码列表尝试,如 果没有找到合适的编码,就用 latin-1(ASCII)编码打开。
2 enca (如果你的系统中没有安装这个命令,可以用 sudo yum install -y enca 安装 )查看文件编码 $ enca filename filename: Universal transformation format 8 bits; UTF-8 CRLF line terminators 需要说明一点的是,enca 对某些 GBK 编码的文件识别的不是很好,识 别时会出现: Unrecognized encoding
二,文件编码转换
1在 Vim 中直接进行转换文件编码,比如将一个文件转换成 utf-8格式 :set fileencoding=utf-8
2 iconv 转换,iconv 的命令格式如下:输入/输出格式规范: -f, --from-code=名称 原始文本编码 -t, --to-code=名称 输出编码 信息: wwwSvn8Com -l, --list 列举所有已知的字符集 输出控制: -c 从输出中忽略无效的字符 -o, --output=FILE 输出文件 Svn8Com -s, --s ilent 关闭警告 --verbose 打印进度信息 -, --help 给出该系统求助列表 --usage 给出简要的用法信息 -V, --version 打印程序版本号 例子: iconv -f utf-8 -t gb2312 aaatxt >bbbtxt 这个命令读取 aaatxt 文件,从 utf-8编码转换为 gb2312编码,其输出定向到 bbbtxt文件。 iconv -f encoding -t encoding inputfile 比如将一个 UTF-8 编码的文件转换成 GBK 编码 iconv -f GBK -t UTF-8 file1 -o file2
3 enconv 转换文件编码 比如要将一个 GBK 编码的文件转换成 UTF-8编码,操作如下 enconv -L zh_CN -x UTF-8 filename
SUSE Linux编码问题
解决问题是:
1手动更改profile文件的命令:vi /etc/profile,2在文件的末尾添加以下两行命令:export LC_ALL="zh_CNGBK"
3也可在/root/bash_profile文件的末尾添加以下两行命令
4修改成功以后用locale命令查看,修改前的默认设置。
1 找到mysql的配置文件,拷贝到etc目录下,第一步很重要
把/usr/share/doc/mysql-server-5152/my-largecnf 复制到 /etc/mycnf
即用命令:cp /usr/share/doc/mysql-server-5152/my-largecnf /etc/mycnf
2 打开mycnf修改编码
在[client]下增加default-character-set=utf8
在[mysqld]下增加default-character-set=utf8
同时加上init_connect='SET NAMES utf8'
(设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)
3重新启动mysql
service mysqld restart
再次输入show variables like
'%character%';
批量转换文件的编码当然是使用命令来转换咯,如果文件太多还可以写一个shell脚本进行批量转换,Linux系统中转换文件编码格式的命令是iconv。iconv命令的使用介绍一下,iconv命令很简单,记住它的三个参数就可以了,下面是它的三个参数:
-f参数:表示from,就是原本的编码格式
-t参数:表示to,就是后来的新编码
-o参数:表示输出文件,就是转换编码后的新文件的文件名,如果没有这个参数新文件会将原来的文件覆盖掉。
下面是将GB2312编码的文件转换成UTF-8编码的例子:
iconv
-f
gb2312
-t
utf8
mygb2312txt
-o
myutf8txt
这个例子中mygb2412txt就是要转换的文件,myutf8txt就是转换后的新文件。
首先我们在终端窗口处输入mysql -u root -p 命令,然后输入root帐号密码连接数据库。具体操作如下图所示。
连接上数据库后,执行命令show variables like 'character%';查看数据库的编码格式,可以看到数据库以及数据库服务端的默认编码都为:latin1编码。具体操作如下图所示。
然后我们退出数据库,修改数据库的配置文件mycnf文件,此文件如果通过rpm安装一般在/etc/目录下,具体修改成的样式如下图所示。
修改完成后,我们保存配置的修改,然后执行命令service mysqld restart。重新启动数据库。具体操作如下图所示。
然后我们待数据库重启完成后,重新连接数据库,执行命令show variables like 'character%'; 查看更改后的编码格式。具体展示如下图所示,可以看到已经修改为utf8编码。
当然对于某个数据库的编码格式的查看,我们可以通过执行命令show create database+数据库名称;具体展示如下图所示。
我们也可以通过执行命令修改数据库的编码格式,可以通过命令:alter database +数据库名称 default character set utf8 collate utf8_general_ci;修改为utf8格式。具体操作如下图所示。
修改完成后,我们再次执行命令 show create database +数据库名称,来查看确认是否更改成功。可以看到已经是utf8格式了。
0条评论