linux下查看文件编码格式以及转换格式教程

哎,这事儿啊,我当年在杭州那会儿遇到过。
公司有个老哥,搞了个日志文件,乱码一锅粥,你看不懂啊。
这咋办呢?
当时我就琢磨,Linux下这玩意儿咋整啊?嘿,还真简单。

你看啊,先得用file命令看看这文件是啥编码的。
得,打开终端,用sudo或者root登录,不然没权限。
然后敲file -i /path/to/your/file,把/path/to/your/file换成你那文件的实际路径。
比如file -i /opt/test.log,你看,这就告诉你test.log是啥编码的,是ISO-8 8 5 9 -1 还是啥。

要是发现是乱码,那咋办?得转啊。
这时候就得用iconv了。
这个命令,当年我查了半天man页才弄明白。

先看下帮助,iconv --help,搞清楚参数咋用。
主要就俩参数,-f和t。
-f是告诉你源文件的编码是啥,-t是你想转成啥编码。
还有个-o,是把转好的文件输出到哪儿。

比如说,你那test.log是ISO-8 8 5 9 -1 编码,你想转成UTF-8 ,输出到test1 .log。
那你就在终端敲:
bash iconv -f ISO-8 8 5 9 -1 -t UTF-8 /opt/test.log -o /opt/test1 .log --verbose
得,转完了。
咋知道转对没转对呢?再用file -i /path/to/converted/file看看。
比如file -i /opt/test1 .log,看看是不是UTF-8 了。

就这么简单。
当年我这老哥用完之后,感激得不行,说以后日志看明白了,不耽误干活了。
你看,解决问题,就是这么点事儿。

linux下查看文件编码及修改编码

说白了,Linux下查看和修改文件编码其实很简单,但复杂在选对工具和注意细节。
先说最重要的,查看文件编码,你可以用Vim工具,直接打开文件后输入:setfileencoding就能看到。
另外一点,你可以在.vimrc配置文件里设置默认编码和识别的编码格式,比如setencoding=utf8 和fileencodings=ucsbom,utf8 ,cp9 3 6 还有个细节挺关键的,如果你用enca命令,记得它对GBK编码的识别可能不太准。

我一开始也以为enca万能,后来发现不对,特别是处理GBK编码时。
等等,还有个事,如果你需要修改文件编码,Vim里同样可以,用:setfileencoding=新编码。
或者用enconv命令,比如把GBK转UTF8 ,就是enconv -Lzh_CN -xUTF8 filename。
iconv命令更强大,能处理更复杂的编码转换,像iconv -fUTF8 -tGBK file1 > file2 就能转换文件编码。

说实话挺坑的,转换编码前最好备份文件,以防万一。
这个点很多人没注意。
我觉得值得试试,根据你的需求和文件类型,选择最合适的工具。

linux下怎么查看文件的编码方式?

上周,我在Linux环境下遇到了一个文件编码的问题。
我用Vim打开文件时发现乱码,后来在Vim的~/.vimrc文件里加了这一段:set encoding=utf-8 fileencodings=ucs-bom,utf-8 ,cp9 3 6 这样一来,Vim就能自动识别文件编码了,无论是UTF-8 还是GBK编码的文件都能正确显示。
不过,有时候enca命令用来查看文件编码挺有用,比如这样:enca filename,它会告诉你文件是哪种编码。
但有时候enca对GBK编码的文件识别得不是很好,会出现“Unrecognized encoding”的情况。
算了,你看着办吧。

linux中gedit指令如何设置编码格式

说实话,用 Gedit 调整编码这事儿,我以前踩过坑,所以印象挺深的。
你说的这些步骤基本都对,但实际操作中可能有些细节得特别注意。

比如第二步,临时设置文件编码,有个小技巧得知道。
如果你经常处理中文文件,但默认是 UTF-8 打开总乱码,可以试试在终端里直接用命令行参数打开。
比如 gedit --encoding=GBK 文件名.txt,这样比右键点半天要快。
我当时在实验室给一堆 Windows 转过来的 GBK 文件转码时,发现这招特管用。

第三步保存时指定编码,有个容易忽略的点。
如果你用的是 Gedit 3 .x,在另存为对话框里找编码选项可能得绕点路——先点"文件"→"另存为",然后保存框右下角有个小箭头,点开才能看到编码选项。
我第一次用 Gedit 3 时差点没找到,还以为版本升级了菜单都变了。

第四点里提到的语言支持包,这事儿得看系统。
我之前在 Ubuntu 1 8 .04 上用 Gedit 处理 GB1 8 03 0 编码的文件时,确实装了 language-pack-zh-hans 才看到完整编码列表。
但在 CentOS 上就不太一样,可能需要 zh_CN.langpacks 这个包。
所以"检查系统语言支持包"这建议,得加个限定条件——主要针对 Debian 衍生系统。

终端启动指定编码那招,其实还有个扩展用法。
比如 gedit --encoding=GB2 3 1 2 --font=SimSun 文件名.txt,可以同时指定编码和字体。
我有个师弟写论文时需要用 GB2 3 1 2 加宋体,用这命令一行搞定,比在首选项里改半天强。

版本差异这点,补充个细节。
Gedit 2 .x 的首选项路径确实是"编辑"→"首选项",但"兼容性"选项卡的位置有点怪——得先点"高级"再找"字符编码"。
我帮隔壁系同学修过一次系统,光这界面差异差点把人绕进去。

不过说实话,现在我用 Gedit 的频率不高了。
如果处理中文文件,我更倾向于用 Kate,那个编码选项直接在左上角文件菜单里,点一下就有 GBK/GB2 3 1 2 /UTF-8 可选,比 Gedit 简洁多了。
但 Gedit 有个好处是界面干净,学习成本低,适合给不熟悉 Linux 的同学用。