Linux下windows中文文本文件乱码问题
table of content:
- 乱码问题
- 用gedit选择正确的字符编码打开文件
- 文件转码
- 总结
§乱码
Fedora安装时默认用UTF-8字符编码方式, 这么做有国际化的好处(和很多用utf-8的地方兼容), 但是也有兼容问题. 比如:
中文编码在windows下不是utf-8编码, 因为政策要求, 在中国销售的软件要用国标码 (即GBK, GB2312, GB18030(最新的))
所以中文windows用GB18030的编码, 这就导致一个小问题. 在linux下打开windows的文件出现乱码, 如图
用Gedit打开一个GB18030编码的文件 (双击打开时)

为什么会这样, 因为gedit用解码utf-8的方式编码(decode) 用GB18030编码的文本, 就像用解释英语解释一段法语一样,翻译出一堆没意义的句子.
§以正确字符编码(character encodings)打开
解决乱码的方法很简单, gedit本身支持很多种字符编码, 如图

1. 用gedit的打开Open打开文件,
选择其它文件(other documents...)
2.
(左下角的Character encoding 处选择正确的字符编码)

然后,文件就正常打开啦:
(请忽略文本内容, 只是刚好是这个文件而已, 不是给网站打广告......)
此外, 如果用命令行的方式打开一个文件可以用gedit --encoding 相应编码 的方式来打开
§转码
用gedit打开一个文件
(此文件用gb2312编码)
另存为
saveas
此时在左下角选择utf-16的编码,点击save
此时新文件就是utf-16格式的, 在终端用file命令可以看到文件的新编码
$ file 用utf-16保存的新文本.txt
用utf-16保存的新文本.txt: Little-endian UTF- Unicode text, with CRLF, CR line terminators
也有其它工具用来转码, 将gb18030转为utf-8, 比如 iconv
用法: iconv [options] [-f from-encoding] [-t to-encoding] [inputfile]...
$ file win_gb2312.txt
win_gb2312.txt: ISO- text, with CRLF line terminators
$ iconv -f gb2312 -t utf- win_gb2312.txt -o utf_encoding.txt # (-o选项指定输出文件)
$ file utf_encoding.txt
utf_encoding.txt: UTF- Unicode text, with CRLF line terminators
§总结
这些方法都有不可忽视的缺点: 那就是你要提前知道文件的原编码方式是啥, 不然就要一个一个试.
如何查看一个文件的编码方式, 可以用file命令查看, 但是file命令不可靠, 一个gb2312编码的文件file命令判断为ISO-8859...
所以还是不够"智能"啊..这些软件...
Linux下windows中文文本文件乱码问题的更多相关文章
- 解决linux下unzip中文有乱码的问题
xxx.zip 中有中文的文件,在linux下unzip就会有乱码. 解决办法:安装7zip 去http://sourceforge.net/projects/p7zip/files/latest/d ...
- Linux下JDK中文字体乱码
java生成图片的时候用到字体,但是liunx系统没有这些字体需要把C:\Windows\Fonts 上传到/usr/local/jdk1.8.0_171/jre/lib/fonts 重启tomcat ...
- Linux 中 Windows 中文乱码
Linux 下 Windows 源代码中文乱码 由于 windows 和 linux 对文本的编码方式不同,所以经常会有 windows 中生成的文本在 linux 中打开乱码的情况. 比如: 我面临 ...
- 解决Linux下Oracle中文乱码的一些心得体会 ,转自
以下转自 http://blog.itpub.net/29151695/viewspace-1173238/ 最近在linux上安装完oracle 10gR2后,又遇到了字符集乱码的问题,之前在网上找 ...
- Linux 下安装中文 ctex 指南
大家在用 $\LaTeX$ 进行中文排版时相信会遇到不少问题,而$\textbf{ctex}$套装的出现则有效的解决了这一问题,只要安装了$\textbf{ctex}$那么在文中不用进行引用设置就可以 ...
- mysql 控制台环境下查询中文数据乱码,插入、更新中文数据不成功
mysql 控制台环境下查询中文数据乱码,插入.更新中文数据不成功 登录mysql密码是加入编码参数--default-character-set,中文用gbk mysql -uroo ...
- Linux 下安装中文字体
本文以安装黑体为例,简单演示如何在Linux下安装中文字体. 环境信息介绍 [root@thatsit ~]# cat /etc/redhat-release CentOS Linux release ...
- 解决Linux下sqlplus中文乱码问题
错误现象:在windows下用其他工具访问oracle,确认中文正常显示.在Linux下使用sqlplus查询数据表中文内容出现乱码. 分析及解决:因为windows下正常,所以问题应出现在Linux ...
- linux下python中文乱码解决方案
1. 场景描述 linux服务器下安装了Anaconda3,执行Pyhton的K-means算法,结果出现如下图的中文字符乱码.上次已经解决了,忘记记录解决流程了,这次配置了一台新的服务器,又出现,默 ...
随机推荐
- springmvc自定义视图
自定义视图 可以整合jfreechart.excel @RequestMapping("/testView") public String testView(){ System.o ...
- springmvc 原生servlet支持
/** * 可以使用 Serlvet 原生的 API 作为目标方法的参数 具体支持以下类型 * * HttpServletRequest * HttpServletResponse * HttpSes ...
- uva 11752 The Super Powers (数论+枚举)
题意:找出1~2^64-1中 能写成至少两个数的幂形式的数,再按顺序输出 分析:只有幂是合数的数才是符合要求的.而幂不会超过64,预处理出64以内的合数. 因为最小的合数是4,所以枚举的上限是2的16 ...
- 学习地址 hadoop生态圈
http://my.oschina.net/leejun2005/blog/140462 http://www.codelast.com/?p=3621&cpage=1#comment-361 ...
- Jsoup学习总结
Jsoup学习总结 摘要 Jsoup是一款比较好的Java版HTML解析器.可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方 ...
- [原创] 毕设---在myeclipes中安装Hadoop开发插件
1.安装Hadoop开发插件 hadoop安装包contrib/目录下有个插件hadoop-0.20.2-eclipse-plugin.jar,拷贝到myeclipse根目录下/dropins目录下. ...
- clipbrd剪切板查看器
本文,我们来学习一下简单的概念,即,如何查看系统剪贴版里面有什么内容? 如果要想看.或者验证系统剪贴版里面都有什么内容,最为简单的方法就是通过"粘贴"的操作来验证! 但是, ...
- PC平台逆向破解
---恢复内容开始--- PC平台逆向破解 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. ...
- 20145235李涛《网络对抗》Exp8 Web基础
基础问答 什么是表单 可以收集用户的信息和反馈意见,是网站管理者与浏览者之间沟通的桥梁. 表单包括两个部分:一部分是HTML源代码用于描述表单(例如,域,标签和用户在页面上看见的按钮),另一部分是脚本 ...
- 利用Metasploit进行Linux提权
利用Metasploit进行Linux提权 Metasploit 拥有msfpayload 和msfencode 这两个工具,这两个工具不但可以生成exe 型后门,一可以生成网页脚本类型的webshe ...