Chinaunix首页 | 论坛 | 博客
  • 博客访问: 369216
  • 博文数量: 22
  • 博客积分: 542
  • 博客等级: 下士
  • 技术积分: 358
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-04 21:11
文章分类

全部博文(22)

文章存档

2013年(4)

2012年(18)

分类: LINUX

2012-06-05 16:31:01

 

最近从windows往linux拷贝东西 发现乱码 并且小小的研究了下.....


1.文本转换工具 iconv

iconv------用于把给定文件从一种编码格式转化为另一种编码格式
如果转换一个文件的编码,则建议用iconv 简单,方便
iconv格式
iconv -f encoding1 -t encoding2 -o outputfile inputfile
解释: 把给定文件inputfile从ecoding1编码格式转化为ecoding2编码格式 并且存入到outputfile文件当中.

2.批量转换文本

比如你想转化一个文件夹下的所有.c文件,一个一个转化就太慢了.
对于这种情况 shell脚本编程是好的选择,它其实也是调用iconv,只是把它放在循环中,这样就可以进行批处理,很方便.当然你也可以自己写一个程序也可以实现,那样相对麻烦些.

底下为该脚本名为test.sh

#!/bin/sh
for a in $* // 此处用到了循环 遍历通配符*中的所有对象 (因为你要 进行批处理,肯定要用到通配符*)
do
if [-f $a] //判断这个文件是否存在
then
iconv -f GBK -t UTF8 -o tmp.x $a //转码后的文件放入 tmp.x文件中
mv tmp.x $a //然后再把tmp.x文件中的内容移动到源文件中 fi
done
然后退出保存
修改test.sh为可执行程序 chmod x test.sh
例如运行 ./test.sh *.c
就可以实现你当前目录所有.c文件的转码了.

3.vim配置文件的修改

修改vim的配置文件就能实现用vim打开不回出现乱码.
按照如下方式执行
sudo su //进入到root用户下
cd /etc/vim
vim vimrc

在末尾加上如下语句
set fencs=ucs-bom,utf-8,gb18030,gbk,gb2312,big5,euc-jp,euc-kr,latin1,cp936set encoding=utf-8
set termencoding=utf-8

这样就实现了大多数编码格式的转换,转换成utf-8编码格式


阅读(1821) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~