开发者社区> 技术小甜> 正文

linux下编码转换

简介:
+关注继续查看

1.什么是编码?

关于编码的定义,我们可以查看百度全科http://baike.baidu.com/view/237708.htm

还可以参考:http://www.cnblogs.com/cocowool/archive/2009/04/25/1443529.html

2.linux下经常遇到的编码问题

如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文
件格式是GBK(gb2312),而Linux一般都是UTF-8

3.查看编码的方法

方法一:file filename

方法二:在Vim中可以直接查看文件编码

  :set fileencoding

即可显示文件编码格式。

如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在
~/.vimrc 文件中添加以下内容:
set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936
这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照
fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1ASCII)编码打开。


/etc/vim/vimrc
最后一行加上set encoding=utf8


4.文件编码转换

多平台方法:
iconv        提供标准的程序和API来进行编码转换;
convert_encoding.py    基于Python的文本文件转换工具;
decodeh.py    提供算法和模块来谈测字符的编码;

Linux:
recode    转换文件编码;
Utrac    转换文件编码;
cstocs    转换文件编码;
convmv    转换文件名编码;
enca    分析给定文件的编码;

Windows:
cscvt    字符集转换工具;

linux下文件编码转换:

方法一:

在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
:set fileencoding=utf-8

方法二:

iconv 转换

5.案例:

假如说我们将windows下的一个UTF-8的文件传到linux环境下,linux环境下的系统编码是GB18030,我们cat的时候就会出现乱码,这个时候就应该想到转码了,下面我们来进行试验:

我们将windows下一个名为UTF-8.sh的文件传到linux系统中,其中UTF-8.sh的内容如下:

我是中文编码UTF-8模式~

而linux系统的系统语言设置为:

[root@sor-sys zy]# cat /etc/sysconfig/i18n 
LANG=zh_CN.GB18030

SYSFONT="latarcyrheb-sun16"
这个时候查看一下文件的内容及编码:

[root@sor-sys zy]# file UTF-8.sh 
UTF-8.sh: UTF-8 Unicode text, with no line terminators
[root@sor-sys zy]# cat UTF-8.sh 
锘挎垜鏄腑鏂囩紪鐮乁TF-8妯″紡~[root@sor-sys zy]# 
[root@sor-sys zy]# 

这个时候我们就需要转换编码了,记得使用iconv

[root@sor-sys zy]# iconv -f UTF-8 -t GB18030 UTF-8.sh -o GB18030.sh
[root@sor-sys zy]# cat GB18030.sh
??我是中文编码UTF-8模式~[root@sor-sys zy]# 
[root@sor-sys zy]# file GB18030.sh 
GB18030.sh: Non-ISO extended-ASCII text, with no line terminators
[root@sor-sys zy]# 












本文转自leonardos51CTO博客,原文链接:http://blog.51cto.com/leomars/1550552 ,如需转载请自行联系原作者



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux系统中使用GCC CPU参数优化代码编译
Linux系统中使用GCC CPU参数优化代码编译 使用特定的GCC参数可以使编译出的程序执行效率有较大提升。具体如下: 1、优化原理: 在编译程序时,借助参数传递的方法,使用与系统CPU相匹配的gcc参数,编译出的程序就是为系统CPU而进行特定优化过的,因而执行速度和效率都会是最好。
824 0
linux centos 被攻击乱码 将字符编码设置为中文
linux centos mysql 漏洞导致centos 被执行恶意命令
108 0
Linux下MySQL源码编译安装(eg:mysql-5.6.27.tar.gz )
Linux下MySQL源码安装(eg:mysql-5.6.27.tar.gz ): 1:准备MySQL源码安装包: mysql-5.6.27.tar.gz、cmake-3.3.2.tar.gz、ncurses-6.0.tar.gz 注:centos请安装: yum install -y ncurses-devel yum install -y perl-Module-Instal
2755 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
13817 0
LINUX C#开发图形界面代码范例及编译
LINUX C#开发图形界面代码范例及编译
27 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
25058 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
18645 0
《Linux C编程从入门到精通》——第 2 章 在Linux中编写C语言代码 2.1Linux中C语言程序开发流程和工具介绍
Linux是用C语言写成的。反过来,Linux又为C语言提供了很好的支持,C语言编译工具gcc、调试工具gdb属于最早开发出来的一批自由软件。因此Linux与C语言形成了完美的结合,为用户提供了一个强大的编程环境,本章将介绍在Linux中编写C语言程序的流程和具体方法。
1251 0
+关注
10145
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载