Linux下windows中文文件乱码问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux下windows中文文件乱码问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1422字,纯文字阅读大概需要3分钟。
内容图文
![Linux下windows中文文件乱码问题](/upload/InfoBanner/zyjiaocheng/1313/c2e373507ebb48b9bd1b5f226cee7d51.jpg)
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-16 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-8859 text, with CRLF line terminators $ iconv -f gb2312 -t utf-8 win_gb2312.txt -o utf_encoding.txt # (-o选项指定输出文件) $ file utf_encoding.txt utf_encoding.txt: UTF-8 Unicode text, with CRLF line terminators
§总结
这些方法都有不可忽视的缺点: 那就是你要提前知道文件的原编码方式是啥, 不然就要一个一个试.
如何查看一个文件的编码方式, 可以用file命令查看, 但是file命令不可靠, 一个gb2312编码的文件file命令判断为ISO-8859...
所以还是不够"智能"啊..这些软件...
原文:http://www.cnblogs.com/longwaytogo/p/6308703.html
内容总结
以上是互联网集市为您收集整理的Linux下windows中文文件乱码问题全部内容,希望文章能够帮你解决Linux下windows中文文件乱码问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。