澳门皇冠金沙网站-澳门皇冠844网站

热门关键词: 澳门皇冠金沙网站,澳门皇冠844网站

文件编码介绍,解决Linux操作系统下部分文件乱码

 

linux ubuntu12.04解压中文zip文件,解压之后乱码解决

Linux与Windows系统语言编码区别

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

原Windows rar压缩的文件,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    ###检查文件的编码

之所以出现乱码是因为所压缩的文件中,有的文件是以中文命名。而在windows下中文的编码一般为gbk,而linux下中文的编码一般为utf8,所以在windows下正常打开的文件,到linux下很可能会出现乱码。

我的电脑环境:linux ubuntu12.04 

解决方案

  • 使用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”则会报错。

解决办法为:使用命令iconv对文件内容编码进行转换。例如我有一个文件"linux常用命令"在windows下打开正常,而在linux下打开则会乱码,其解决办法为在终端输入:

 

iconv -f gbk -t utf8 linux常用命令.txt > linux常用命令.txt.utf8

试了很多方法都不好使,

之后再打开"linux常用命令.txt.utf8"这个文件,该文见的乱码问题就解决了。

 

rar压缩的文件,Linux系统下解压后打开里边的文件,内容全部乱码。 之所以出现乱码是因为所压缩的文件中,有的文件是以中文命...

但是下面的一种在我的电脑上就OK 。

 

1.zip文件解压之后文件名乱码:

 

第一步 首先安装7zip和convmv(如果之前没有安装的话)

 

在命令行执行安装命令如下:

sudo apt-get install p7zip-full convmv

 

第二步 假设zip文件名为y05文档.zip,那么先进入zip文件所在的目录,然后命令行执行

LANG=C 7z x y05文档.zip

澳门皇冠金沙网站,convmv -f cp936 -t utf8 -r --notest *

 

本文由澳门皇冠金沙网站发布于网络操作,转载请注明出处:文件编码介绍,解决Linux操作系统下部分文件乱码