原文地址:http://www.cnblogs.com/wanyao/p/3399269.html
 
#!/bin/bash
files=`file * | grep "ISO-8859" |cut -d ":" -f 1`
for i in `echo $files`
do
iconv -f GBK -t UTF-8 <$i >tmp
mv tmp $i
done
 
Windows转到linux中,文件乱码,文件编码转换
最近,学习又重新开始Linux学习,所以一直在Centos中,昨天一朋友把他在Windows下写的C程序发给我,我欣然答应,本以为很快就能在我的Linux系统中运行起来。没想到出现了乱码,结果想把这个问题解决,一下子就搞了近三个小时没有解决。今天,又想起来这个问题,竟然一下子就解决了,现在把学到的一些东西总结如下。
 
首先Windows下的文件拿到Linux中来查看出现乱码是一种很常见的现象,这方面的资料在网上也有很多。但解决方法大多都类似,有些概念没有解释清楚,也许是个人没有理解清楚。
尝试方法一:
一碰到这个问题,我想到的是Linux课上学到的一个命令dos2unix,以前也没用过,这次用了也没有解决问题。
因为,这个命令主要是用来处理Dos与Linux之间断行的差异的。DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A。而Unix下的文本文件是以\n作为断行标志的,表示成十六进制就是 0A。有时我们会遇到这样一种情况,dos下的文件在unix下显示是不出现断行,显得很乱,这时用这个命令就OK。
后来在网上查了下,知道是编码格式不一致导致的。因为Dos下编辑的文本默认是以GBK存储的,而Linux默认采取的存储方式是UTF-8,当然会出现乱码了,但是如何去将Dos下的GBK文件转换成UTF-8呢?
 
尝试方法二:更改Vim读取时采用的编码
先补充一个知识,参考博客http://blog.csdn.net/kl222/article/details/4550269
 
vim编码方面的基础知识:
存在3个变量:
encoding—-该选项使用于缓冲的文本(你正在编辑的文件),寄存器,Vim 脚本文件等等。你可以把 'encoding' 选项当作是对 Vim 内部运行机制的设定。
fileencoding—-该选项是vim写入文件时采用的编码类型。
termencoding—-该选项代表输出到客户终端(Term)采用的编码类型。
 
所以,我尝试了在Vim中
:set encoding
:set fileencoding=utf-8          #让Vim将gbk的文本转换成utf-8后,显示出来
 
经过这样改了之后,果然,Vim中看到的乱码消失了,此时心情小小的激动了一下子。
但是,当我退出Vim再次打开文件时,乱码又出现了,原来是我更改的Vim设置只是临时的,所以我决定将其写死到vim配置文件当中去,操作如下:
编辑~/.vimrc文件,加上如下几行:
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
 
这时,每次用Vim打开文件时都不出现乱码了,本以为问题解决了,我开始编译程序,当我运行的时候,乱码还是出现了。。。。此时,欲哭无泪
 
后来,我仔细想了一下,我更改Vim的配置,只是让我们看到的没有乱码,但从根本上讲,文件的编码方式还是没有变,所以当我用gcc编译后,文件的编码格式应该还是gbk的。这样导致的乱码。所以,我决定找个工具,直接讲gbk文件转换成utf-8。
 
尝试三:
1.查看文件存储格式
#file test.cpp
test.cpp: ISO-8859 English text, with CRLF line terminators
可以看出文件是以ISO-8859存储的。
2.查看系统语言设置
#cat /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
可以看出Linux是以UTF-8编码的
3.利用工具将文件从ISO-8859转换成UTF-8(这里我采用的是iconv命令)
#iconv -f ISO-8859 -t UTF-8 test.c -o test_u.c
这时竟然出现了一个错误:
iconv: conversion from `ISO-8859' is not supported
Try `iconv --help' or `iconv --usage
解决方案:
将ISO-8859换成GBK
#iconv -f GBK -t UTF-8 test.c -o test_u.c
 
终于大功告成!
 
参考文献:
[1].http://blog.csdn.net/kl222/article/details/4550269
[2].http://www.cnblogs.com/cosiray/archive/2012/05/04/2483111.html
[3].http://blog.chinaunix.net/uid-26786246-id-3636785.html
 

用iconv 文件格式转换相关推荐

  1. iconv文件格式转换

    在很多类unix平台上都有一个iconv工具,可以用来转换字符编码:而对于普通的文本文件,file命令可以用来检测某个文件的字符编码类型,结合两者就可以非常方便地把一个未知编码类型的文本文件用某一指定 ...

  2. vim windows linux文件格式转换

    vim windows linux文件格式转换 set ff?     #显示当前文件格式 set ff=unix     #设置成unix格式 set ff=dos #设置成dos格式 posted ...

  3. Windows应用程序文件格式转换控件LEADTOOLS ePrint Professional

    2019独角兽企业重金招聘Python工程师标准>>> LEADTOOLS ePrint Professional控件是一个多功能一体化文件转换解决方案,它可帮助您将任何Window ...

  4. 如何在DOS/Windows和Linux/Unix之间进行文件格式转换?

    如何在DOS/Windows和Linux/Unix之间进行文件格式转换?<?xml:namespace prefix = o ns = "urn:schemas-microsoft-c ...

  5. bmp转换tiff c++代码_Creative Convert for Mac(文件格式转换工具)

    Creative Convert for Mac是应用在Mac上的一款文件格式转换工具,可将PDF,Ai,PSD和/或EPS文件转换为独立的图形文件格式,不需要PDF阅读器或图像编辑器,将每页保存为独 ...

  6. 结合file和iconv命令转换文件的字符编码类型

    http://hi.baidu.com/netwrom/blog/item/8885f31ef0d09ae7e1fe0b1c.html 在很多类unix平台上都有一个iconv工具,可以用来转换字符编 ...

  7. python实现文件格式转换_python实现快速文件格式批量转换的方法

    用python实现文件夹下的成批文件格式转换 我们对于文件转换的需求很大,甚至于对于图片的格式,JPG和PNG格式在肉眼看来都没什么差别,但是对于计算机而言,它有时候就只接受这些肉眼看起来差不多的格式 ...

  8. 常用文件格式转换大全: PDF转Word,WORD转PDF转换器,DOCX转DOC转换

    为什么80%的码农都做不了架构师?>>>    常用文件格式转换大全: Diywz - PDF转Word,WORD转PDF转换器,DOCX转DOC转换器  常用的文件格式互转工具,实 ...

  9. PDF文件格式转换攻略:PDF格式转换图片格式

    关于PDF文件格式的转换大家有了解多少吗?就比如将PDF格式转换成图片格式,可能之前大家对于PDF件大家都有了解到,办公中我们经常遇到过.现在小编在这里教大家如何将PDF格式转换成图片格式,有兴趣的伙 ...

最新文章

  1. win10 microsoft compatibility telemetry 禁用用户改善反馈服务进程 磁盘占用高
  2. 剑指offer(Java实现) 平衡二叉树
  3. Python3 中的最大整数和最大浮点数
  4. boost::hana::greater_equal用法的测试程序
  5. flume案例-文件数据采集-运行测试
  6. 2021.08.23学习内容Pytorch与Torch的关系以及Torchvision作用
  7. sql如何在两张表中得到每组数据,并知道数据的个数,举例,判断有多少班级,每个班的人数
  8. 单片机c语言编程烧录软件,STC-ISP单片机烧录软件下载|好用的单片机编程器烧录软件_最火软件站...
  9. 数据结构课程设计题目
  10. solidworks工程图转PDF缺少arial字体
  11. Javaweb中EL 表达式和JSTL 的使用
  12. 自动生成_橙瓜码字小说自动生成器,对话描写,景物描写,外貌描写自动生成...
  13. QQ钱包的接入及其设计分析
  14. Echarts实现数据可视化大屏
  15. Python数据可视化 | 一文带你掌握Pyecharts地理数据可视化
  16. 单元测试chapter2
  17. 《工程测量学》考试复习总结
  18. wxWidgets教程(14)——书签控件wxBookCtrl
  19. 通过ip查询域名信息
  20. 周杰伦新歌《彩虹》mp3 在线试听|下载|歌词 在线播放,周杰伦新歌《彩虹》MV

热门文章

  1. AIX PowerPC体系结构及其溢出技术学习笔记
  2. Freesurfer教程(ubuntu)
  3. 网页中怎样在线播放音乐和视频
  4. linux4.4 内核 netlink,wpa_supplicant与内核nl80211通信之Generic Netlink
  5. 讲情怀的韦晓亮和他的科技教育因果论
  6. 计算机二维动画实验原理,浅析计算机二维动画制作
  7. (译)如何做一个塔防游戏(cocos2d 2012-8-17)
  8. 关于报错Unknown custom element:did you register the component correctly? For recursive components的解决方式
  9. 为什么onenote一直在加载_超好用的笔记软件,Onenote是我的最爱
  10. Anaconda与PyCharm安装与配置