a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 69|回复: 0

[综合辅导] Linux认证:linux下文件字符集编码转换

[复制链接]
发表于 2012-8-4 12:07:07 | 显示全部楼层 |阅读模式
Linux认证:linux下文件字符集编码转换
$ g/ \) A3 M, \1 \* |6 S, m$ J) x查看文件编码file命令
* ^5 p0 e1 K: }7 c4 z8 lfile ip.txt, h5 s, p: V& S1 k1 \% Y
查看文件编码file命令" {, P& r4 E0 t% v! d: W% R0 L9 |
file ip.txt' O& N" A- A: i" G
ip.txt: UTF-8 Unicode text, with escape sequences& ]/ e, |. z" ^3 ~# U. R: A
一、利用iconv命令进行编码转换文件内容编码转换
& e! J- z7 R1 {$ oiconv命令用于转换指定文件的编码,默认输出到标准输出设备,亦可指定输出文件。
2 q& B9 ^7 b5 `8 ^- [& L, S用法: iconv [选项。..] [文件。..]
: d1 h* D" x/ H& M有如下选项可用:
- r0 W. c4 J# u- _) ~输入/输出格式规范:% `4 k7 u: O) Y6 }5 Z
-f, --from-code=名称 原始文本编码' ~  }  }& h) D9 `: F' O1 ^4 B
-t, --to-code=名称 输出编码
6 A( p4 J, z: S+ f8 c( V" }" n$ T信息:- p7 o; G5 R6 `# {# i3 }
-l, --list 列举所有已知的字符集
. o8 C. u# ^8 i, U$ V2 e, r3 D输出控制:7 N" a6 u+ S- J
-c 从输出中忽略无效的字符" Q; ~. o( y, ~6 X. r, i
-o, --output=FILE 输出文件
8 z0 Q1 J# b. K7 M-s, --silent 关闭警告3 M0 m! [# m+ z2 F1 t
--verbose 打印进度信息' Z6 B- o7 H9 ?+ }7 n# _
-?, --help 给出该系统求助列表7 h6 \3 ^' W: M( W8 b  u$ t4 D
--usage 给出简要的用法信息9 K3 z) f0 ^2 R' U
-V, --version 打印程序版本号
5 c1 {) R1 I+ N) S例子:: s: t* X2 J: U+ b- m* F. G$ H: w
iconv -f utf-8 -t gb2312 aaa.txt 》bbb.txt  [* Y* V: O. f
这个命令读取aaa.txt文件,从utf-8编码转换为gb2312编码,其输出定向到bbb.txt文件。
6 \* d3 s6 P8 `8 n8 b6 w2 H! Q' V* y9 ?$ ^* N/ Q# `

9 @" @( r* @# y, F/ q  k! _# W二、文件名编码转换: C9 K: P# o) ?! S2 z4 L2 p
因为现在用linux,原来在windows里的文件都是用GBK编码的。所以copy到linux下是乱码,文件内容可以用iconv来转换可是好多中文的文件名还是乱码,找到个可以转换文件名编码的命令,就是convmv。. u7 R+ H. X% n+ {% j. j
convmv命令详细参数" l3 R0 D# x* p& V! \  s
例如
& x$ y9 c, h+ m# s: jconvmv -f GBK -t UTF-8 *.mp3
1 L2 U+ O+ t( b2 m0 t不过这个命令不会直正的转换,你可以看到转换前后的对比。如果要直正的转换要加上参数 --notest
% c- T4 y+ }" ^convmv -f GBK -t UTF-8 --notest *.mp34 C/ d& N; M8 j9 e  B* C+ ~- T
-f 参数是指出转换前的编码,-t 是转换后的编码。这个千万不要弄错了。不然可能还是乱码哦。还有一个参数很有用。就是 -r 这个表示递归转换当前目录下的所有子目录。1 P0 j& {/ J/ W% J4 r7 X% T  x1 j
三、更好的傻瓜型命令行工具enca,它不但能智能的识别文件的编码,而且还支持成批转换。5 \2 ^, V$ x( i8 k5 b, z  Q
1.安装
4 t3 D1 o! n( d( b, M$sudo apt-get install enca
( |+ b$ R) G; d  [4 f; ~2.查看当前文件编码* }% ~5 F4 V" }9 L: o7 s6 p4 G
enca -L zh_CN ip.txt  [$ U  F, s7 p$ b& q
Simplified Chinese National Standard; GB2312
( f) r4 n3 a% J5 uSurrounded by/intermixed with non-text data
. }  H; w! B7 C$ N. v3.转换
& m6 B. ]! }5 g命令格式如下/ a( t" ?  F$ F( f; S/ K2 F& g3 x
$enca -L 当前语言 -x 目标编码 文件名* m; q2 p7 g7 ]% p5 D
例如要把当前目录下的所有文件都转成utf-8' |9 Y3 q; e/ B1 g
enca -L zh_CN -x utf-8 *) J+ r& l9 S6 ~1 ~7 s2 W
enca -L zh_CN file 检查文件的编码  {3 L0 l" B6 C( L
enca -L zh_CN -x UTF-8 file 将文件编码转换为“UTF-8”编码
/ k+ b& ?( {5 z) t* j$ O6 |enca -L zh_CN -x UTF-8 《 file1 》 file2 如果不想覆盖原文件可以这样,很简单吧。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-21 08:08 , Processed in 0.203945 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表