Linux系统中关于文件编码以及编码的转换

来源:本站
导读:目前正在解读《Linux系统中关于文件编码以及编码的转换》的相关信息,《Linux系统中关于文件编码以及编码的转换》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《Linux系统中关于文件编码以及编码的转换》的详细说明。
简介:本文主要介绍如何在Linux系统中实现文件编码以及编码的转换。

Windows中默认的文件格式是GBK(gb2312),当然也可以保存为UTF-8的,最简单的方法是用记事本的“另存为”就可以做到。

为了与windows兼容,SecureCRT中文件编码的默认配置是”Default”,其实也就是GBK。如果我们将其更改为了”UTF-8″,那么我们查看从windows中scp过去的GBK文件就会变成乱码,需要进行转换,比较麻烦。

不过有时候我们也需要进行编码的转换,比如这次我这次在建立cacti的模板的时候使用了中文,apache默认是UTF-8的编码,所以记录到mysql数据库中的就是UTF-8的编码了(奇怪的是,在mysql中使用”setnamesutf-8″看不到正确的中文,需要使用”hex()”函数来看二进制,数一下字符数量,看是不是utf-8…..)。而当我使用批量添加主机的脚本来添加新服务器信息到数据库后,发现在网页中出现了乱码。原因是在cli中使用脚本的话,中文是使用GBK的格式保存到数据库中的。于是变成了很郁闷的情况,无论将浏览器编码设置为”UTF-8″还是”GB2312″,总会有一部分中文是乱码的。

解决的方法,不是将原来的模板的中文都转换成gb2312,就是要将以后添加的主机信息里面的中文转换成UTF-8。因为我比较喜欢UTF-8一点,所以我决定用后一种方法。

linux里面转换编码的方法很多,google了一下,一般的人都是用”iconv”命令来进行转换。但是由于我需要在脚本里面判断文件的编码,”iconv”就不太适用。其实Linux里面还有另一个能进行编码转换,并比”iconv”功能强大的”enca”。

debian中的安装:

aptitudeinstallenca

使用方法:

enca-Lzh_CNfile检查文件的编码

enca-Lzh_CN-xUTF-8file将文件编码转换为"UTF-8"编码

enca-Lzh_CN-xUTF-8<file1>file2如果不想覆盖原文件可以这样

除了有检查文件编码的功能以外,”enca”还有一个好处就是如果文件本来就是你要转换的那种编码,它不会报错,还是会print出结果来,而”iconv”则会报错。这对于脚本编写是比较方便的事情。

提醒:《Linux系统中关于文件编码以及编码的转换》最后刷新时间 2024-03-14 01:02:20,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《Linux系统中关于文件编码以及编码的转换》该内容的真实性请自行鉴别。