linux下文件编码格式转换方法(gb18030utf-8)

linux下文件编码格式转换方法(gb18030utf-8),第1张

linux下文件编码格式转换方法(gb18030/utf-8) 在 Linux 做开发或者系统管理遇到乱码是经常的事情,主要windows下中文的默认编码是bg2312,而 linux下是utf-8。很多时候 涉及到和windows平台系统的通信免不了编码的转化,可能大部分人都用iconv库函数(包含在glib中)和iconv命令来执行编码转换,即: iconv -f gb18030 -t utf-8 file1.txt -o file2.txt 说实话这个命令不好使,一方面容易重复转换,另一方面不支持通配符,无法成批转 换,文件少了还好说,要是一大堆文件岂不是要累死? 今天我要推荐的是另一个 Shell 下编码转换工具enca。用它不仅可以转换编码,还可以查看文件的原始编码,而且还支持成批转换。使用上也比iconv方便一些。安装enca很简单,一般用源安装就行了,enca用法如下: enca -L 当前语言 文件名 enca -L zh_CN file //检查文件的编码 enca -L 当前语言 -x 目标编码 文件名 enca -L zh_CN -x UTF-8 file //将文件编码转换为”UTF-8″编码 enca -L zh_CN -x UTF-8 <file1 >file2 //如果不想覆盖原文件可以这样 除了有检查文件编码的功能以外,”enca”还有一个好处就是如果文件本来就是你要转换的那种编码,它不会报错,还是会print出结果来, 而”iconv”则会报错。这对于脚本编写是比较方便的事情。

在Linux上查看文件,有时候会出现中文乱码的问题。这是因为文件编码不兼容导致的,需要进行文件转码。

1、用VI查看文件编码,在Vi命令模式以下命令,即可显示文件编码格式。

2、 改写~/.vimrc 文件,在文件中添加以下内容,就可以让vi自动识别UTF-8或者GBK编码的文件。

将window上创建的脚本传输到linux执行时,会出现-bash: xxx: /bin/sh^M: bad interpreter: No such file or directory的错误。

1、vi打开文件,并在命令模式下输入以下命令回车,此时看到的是dos格式。

2、修改文件格式, 同样在vi命令格式下,输入以下修改文件格式。

1.在vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式

:set

fileencoding=utf-8

2.

enconv

转换文件编码,比如要将一个gbk编码的文件转换成utf-8编码, *** 作如下

enconv

-l

zh_cn

-x

utf-8

filename

3.

iconv

转换,iconv的命令格式如下:

iconv

-f

encoding

-t

encoding

inputfile

比如将一个utf-8

编码的文件转换成gbk编码

iconv

-f

gbk

-t

utf-8

file1

-o

file2

查看文件编码file命令

file

ip.txt

ip.txt:

utf-8

unicode

text,

with

escape

sequences

一、利用iconv命令进行编码转换文件内容编码转换

iconv命令用于转换指定文件的编码,默认输出到标准输出设备,亦可指定输出文件。

用法:

iconv

[选项...]

[文件...]

有如下选项可用:

输入/输出格式规范:

-f,

--from-code=名称

原始文本编码

-t,

--to-code=名称

输出编码

信息:

-l,

--list

列举所有已知的字符集

输出控制:

-c

从输出中忽略无效的字符

-o,

--output=file

输出文件

-s,

--silent

关闭警告

--verbose

打印进度信息

-?,

--help

给出该系统求助列表

--usage

给出简要的用法信息

-v,

--version

打印程序版本号

例子:

iconv

-f

utf-8

-t

gb2312

aaa.txt

>bbb.txt

这个命令读取aaa.txt文件,从utf-8编码转换为gb2312编码,其输出定向到bbb.txt文件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/6049883.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-13
下一篇 2023-03-13

发表评论

登录后才能评论

评论列表(0条)

保存