Linux与Windows系统语言编码区别

在Linux操作系统下,我们有时打开在windows下的txt文件,发现在windows下能正常显示的txt文件出现了中文乱码。

出现这种情况的原因为两种操作系统的中文字符编码方式(压缩方式)不同,在windows环境中中文字符编码一般为gbk,而在linux环境中为utf8,这就导致了在windows下能正常显示txt文件在linux环境下打开呈现了乱码状态。

系统编码设置

locale.gen文件

# /etc/locale.gen: list all of the locales you want to have on your system
#
# The format of each line:
# <locale> <charmap>
#
# Where <locale> is a locale located in /usr/share/i18n/locales/ and
# where <charmap> is a charmap located in /usr/share/i18n/charmaps/.
#
# All blank lines and lines starting with # are ignored.
#
# For the default list of supported combinations, see the file:
# /usr/share/i18n/SUPPORTED
#
# Whenever glibc is emerged, the locales listed here will be automatically
# rebuilt for you. After updating this file, you can simply run `locale-gen`
# yourself instead of re-emerging glibc.
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
  • 查看系统语言编码种类

    /usr/share/i18n/locales/目录下包含系统支持的编码语言种类
gentoo ~ # ls /usr/share/i18n/locales/
en_US en_GB en_HK
zh_CN zh_TW zh_HK
ja_JP de_DE ......
gentoo ~ #
  • 查看字符编码压缩方式

    /usr/share/i18n/charmaps/目录下包含系统支持的字符编码方式
ls /usr/share/i18n/charmaps/
ANSI_X3.110-1983.gz IBM1026.gz ISO-8859-16.gz
ANSI_X3.4-1968.gz IBM1047.gz ISO_8859-1,GL.gz
ARMSCII-8.gz IBM1124.gz ISO-8859-1.gz
ASMO_449.gz IBM1129.gz ISO-8859-2.gz
GB18030.gz ISIRI-3342.gz SAMI.gz
GB_1988-80.gz ISO_10367-BOX.gz SAMI-WS2.gz
GB2312.gz ISO_10646.gz SEN_850200_B.gz
GBK.gz ISO_11548-1.gz SEN_850200_C.
HP-ROMAN9.gz ISO_6937.gz UTF-8.gz
......
  • enca查看文件编码方式
enca -L zh_CN file    ###检查文件的编码

解决方案

  • 使用iconv命令进行文件编码转换,如乱码文件名为hello.txt,那么在终端输入如下命令:
iconv -f gbk -t utf8 hello.txt > hello.utf8.txt
  • 使用enca命令转换:
enca -L zh_CN -x UTF-8 hello.utf8.txt      ###将文件编码转换为"UTF-8"编码
enca -L zh_CN -x gbk hello.txt ###将文件编码转换为"gbk"编码

enca有一个好处,如果文件本来就是你要转换的那种编码,它不会报错,还是会print出结果来, 而”iconv”则会报错。

Gentoo解决Windows系统txt文本中文乱码问题的更多相关文章

  1. 解决windows下FileZilla server中文乱码问题

    最利用cuteftppro FTP做文件夹同步,发现中文的文件夹及文件名都出现了乱码问题, 一开始以为是cuteftppro的问题,谷哥度娘找了一堆的解决方案都没有解决乱码问题,真是头疼啊! 后来终于 ...

  2. python在windows系统中打印中文乱码

    转自:http://www.111cn.net/phper/python/58920.htm 中文乱码对于程序开发人员来讲不是什么怪事情了,今天我在使用python打印中文时就出现乱码了,下面我们一起 ...

  3. 解决Windows下Tomcat控制台中文乱码

    找到${CATALINA_HOME}/conf/logging.properties 添加语句:java.util.logging.ConsoleHandler.encoding = GBK 重启to ...

  4. vim应用:终极解决windows系统gvim/vim的各种乱码(文件,菜单,提示信息)!

    这个方法解决了我的windows下 gvim的中文乱码问题(跟大家分享一下). 此方法引用   http://www.douban.com/note/145491549/ 查看文件的编码::echo ...

  5. windows下git bash中文乱码解决办法

    一.解决办法1:(直接上图) 1.在git bash下,右键 出现下图,选择options: 2.选择“Text” 3.将“Character set”设置为  UTF-8 转:windows下git ...

  6. 解决Linux文档显示中文乱码问题以及编码转换

    解决Linux文档显示中文乱码问题以及编码转换 解决Linux文档显示中文乱码问题以及编码转换 使vi支持GBK编码 由于Windows下默认编码是GBK,而linux下的默认编码是UTF-8,所以打 ...

  7. 【其他】【navicat】【1】navicat导入txt文件中文乱码问题解决

    正文: TXT文件默认编码为ANSI,另存为编码为UTF-8的文本文件即可 备注: 1,一般需要导入的数据都是一张excel表,需要将excel表另存为“文本文件(制表符分隔)(*.txt)”保存类型 ...

  8. 解决跨操作系统平台JSON中文乱码问题

    解决跨操作系统平台JSON中文乱码问题 LINUX统一使用utf-8编码,WINDOWS却不是. LINUX中间件,传输JSON给WINDOWS程序,会乱码. 解决办法: 对JSON字段是字符串类型的 ...

  9. ubuntu系统下matplotlib中文乱码问题

    参考 [ubuntu系统下matplotlib中文乱码问题 - CSDN博客](https://blog.csdn.net/jeff_liu_sky_/article/details/54023745 ...

随机推荐

  1. 将JDBC ResultSet结果集转成List

    private List<Map<String, Object>> list = new ArrayList<Map<String,Object>>() ...

  2. TPL相关

    C#中的Timer System.Windows.Forms.TimerSystem.Threading.Timer System.Timers.Timer 1.System.Windows.Form ...

  3. 利用pdf2swf将PDF转换成SWF

    将PDF转换成SWF可以使用SWFTools工具中的pdf2swf(http://www.swftools.org/),CSDN快速免积分下载地址http://download.csdn.net/de ...

  4. 反向代理(Reverse Proxy)

    反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时 ...

  5. hdu 1698 Just a Hook(线段树基础)

    成段更新的线段树,加入了延时标记............ 线段树这种东西细节上的理解因人而异,还是要自己深入理解......慢慢来 #include <iostream> #include ...

  6. starling性能优化

    在项目开发的过程中总结了一下starling的性能优化方案: 1.     不要频繁的读取显示对象的宽高:调用宽高属性时会调用显示对象的getBounds()方法,该方法会遍历该对象的所有子对象,重新 ...

  7. iOS 指南针的制作 附带源码

    iOS  指南针的制作  附带源码 代码下载地址: http://vdisk.weibo.com/s/HK4yE   http://pan.baidu.com/share/link?shareid=7 ...

  8. Android 关于在Activity中监听ListView

    Android 开发时,最常用的控件之一就是ListView了,而使用ListView的同时,必然需要对它设置监听器,常用的监听器有这么几个: 1. OnItemClickListener // 监听 ...

  9. JavaScript利用闭包实现模块化

    利用闭包的强大威力,但从表面上看,它们似乎与回调无关.下面一起来研究其中最强大的一个:模块. function foo() { var something = "cool"; va ...

  10. Golang爬虫示例包系列教程(一):pedaily.com投资界爬虫

    Golang爬虫示例包 文件结构 自己用Golang原生包封装了一个爬虫库,源码见go get -u -v github.com/hunterhug/go_tool/spider ---- data ...