Linux查看文件编码格式及文件编码转换

作者: JeanCheng 2017-02-14 09:29:35

1.问题描述–(linux下经常遇到的编码问题)


师兄在 windows 下写的一段程序(C/C++ 编写), 传给我在 Linux 下面运行, 编译和运行的时候输出的时候中文乱码了。




 


2.原因解析


如果你需要在 Linux 中操作 windows 下的文件, 那么你可能会经常遇到文件编码转换的问题.


Windows 中默认的文件格式是 cp936(通常被视为等同 GBK), 而 Linux 一般都是 UTF-8。


 


3.背景知识(什么是编码?)


参考:




 


4.linux下查看编码的方法


方法一:file filename


file cp936.c




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


:set fileencoding


即可显示文件编码格式




如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在~/.vimrc 文件中添加以下内容:


set encoding=utf-8


fileencodings=ucs-bom,utf-8,cp936




这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。


 


5.文件编码转换


跨平台方法:



























工具

描述

使用

iconv

提供标准的程序和API来进行编码转换

iconv -f 原编码 -t 转换后的编码 inputfile -o outputfile

convert_encoding.py

基于Python的文本文件转换工具

 

decodeh.py

提供算法和模块来谈测字符的编码



Linux:










































工具

描述

使用

vim

使用vim直接进行文件的编码转换

:set fileencoding=utf-8

recode

转换文件编码

 

Utrac

转换文件编码

 

cstocs

转换文件编码

 

convmv

转换文件名编码

 

enca

分析给定文件的编码



Windows:
















工具

描述

cscvt

字符集转换工具



 


本文永久更新地址:http://www.linuxdiyf.com/linux/28385.html

相关资讯