导航:首页 > 文件类型 > linux以gbk形式打开文件

linux以gbk形式打开文件

发布时间:2023-04-07 21:52:31

文件linux显示乱码怎么解决

linux下经常遇到的编码问题如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。
查看编码的方法

方法一:file filename
方法二:在Vim中可以直接查看文件编码
:set fileencoding
如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在
~/.vimrc 文件中添加以下内容:
set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936
这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开
文件编码转换

多方法:
iconv 提供标准的程序和API来进行编码转换;
convert_encoding.py 基于Python的文本文件转换工具
decodeh.py 提供算法和模块来谈测字符的编码;
linux下文件编码转换:

方法一:

在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
:set fileencoding=utf-8

或者

11)设置文件集合,即要对哪些文件进行操作,可以使用通配符,比如我通常是对 C/C++ 源程序进行编码转换

:args *.h *.cpp

2)给出要在每个文件上执行的命令,这里是转换编码:

:argdo set fenc=utf-8 | update

方法二:

iconv 转换

5.案例:

假如说我们将windows下的一个UTF-8的文件传到linux环境下,linux环境下的系统编码是GB18030,我们cat的时候就会出现乱码,这个时候就应该想到转码了,下面我们来进行试验:

我们将windows下一个名为UTF-8.sh的文件传到linux系统中,其中UTF-8.sh的内容如下:

我是中文编码UTF-8模式~

而linux系统的系统语言设置为:

[root@sor-sys zy]# cat /etc/sysconfig/i18n
LANG=zh_CN.GB18030
SYSFONT="latarcyrheb-sun16"
这个时候查看一下文件的内容及编码:

[root@sor-sys zy]# file UTF-8.sh
UTF-8.sh: UTF-8 Unicode text, with no line terminators
[root@sor-sys zy]# cat UTF-8.sh
锘挎垜鏄?腑鏂囩紪镰乁TF-8妯″纺~[root@sor-sys zy]#
[root@sor-sys zy]#

这个时候我们就需要转换编码了,记得使用iconv

[root@sor-sys zy]# iconv -f UTF-8 -t GB18030 UTF-8.sh -o GB18030.sh
[root@sor-sys zy]# cat GB18030.sh
??我是中文编码UTF-8模式~[root@sor-sys zy]#
[root@sor-sys zy]# file GB18030.sh
GB18030.sh: Non-ISO extended-ASCII text, with no line terminators
[root@sor-sys zy]#

convmv就是更改文件名编码方式的一个工具。
比如

sudo convmv -f gbk -t utf-8 -r –notest /home
就是将/home目录下原来文件名是gbk编码方式的全部改为utf-8格式的。这里 -f 后面为原来的编码方式,-t 后面是要更改为的编码方式, -r 表示这个目录下面的所有文件, –notest 表示马上执行,而不是仅仅测试而已。另外这命令好像要root才能执行,因此要加上 sudo。

❷ Linux中如何查看文件编码及对文件进行编码转换

查看文件编码
在Linux中查看文件编码可以通过以下几种方式:
1.在Vim中可以直接查看文件编码
:set fileencoding
即可显示文件编码格式。
如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在
~/.vimrc 文件中添加以下内容:

set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936

这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。

文件编码转换
1.在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
:set fileencoding=utf-8
2. iconv 转换,iconv的命令格式如下:
iconv -f encoding -t encoding inputfile
比如将一个UTF-8 编码的文件转换成GBK编码
iconv -f GBK -t UTF-8 file1 -o file2

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

文件名编码转换:

从Linux 往 windows拷贝文件或者从windows往Linux拷贝文件,有时会出现中文文件名乱码的情况,出现这种问题的原因是因为,windows的文件名 中文编码默认为GBK,而Linux中默认文件名编码为UTF8,由于编码不一致,所以导致了文件名乱码的问题,解决这个问题需要对文件名进行转码。

在Linux中专门提供了一种工具convmv进行文件名编码的转换,可以将文件名从GBK转换成UTF-8编码,或者从UTF-8转换到GBK。

首先看一下你的系统上是否安装了convmv,如果没安装的话用:
yum -y install convmv
安装。

下面看一下convmv的具体用法:

convmv -f 源编码 -t 新编码 [选项] 文件名

常用参数:
-r 递归处理子文件夹
--notest 真正进行操作,请注意在默认情况下是不对文件进行真实操作的,而只是试验。
--list 显示所有支持的编码
--unescap 可以做一下转义,比如把%20变成空格
比如我们有一个utf8编码的文件名,转换成GBK编码,命令如下:

convmv -f UTF-8 -t GBK --notest utf8编码的文件名
这样转换以后"utf8编码的文件名"会被转换成GBK编码(只是文件名编码的转换,文件内容不会发生变化)

❸ linux 下 中文 gbk 转 utf-8

我试了说的情况,没有报错啊,在windows下使用文本编辑器输入喆,字符专编码格式为GBK,并且跟其它属汉字混合在一起,传到linux上由于我的环境是utf-8的,所以是乱码,然后运行
iconv -f GBK -t UTF-8 源文件 -o目标文件
打开目标文件,显示一切正常了
备注:我的linux环境是suse linux enterprise server 11 sp3(x86_64)

❹ 在linux中每次打开一个终端,终端的默认编码为 utf-8,如何设置为让他每次打开编码为GBK

修改 i18n 这个文件。
一般系统默认在/etc/sysconfig/ 这个目录下

❺ linux下怎么改变文件的编码格式

1.在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
:set fileencoding=utf-8

2. enconv 转换文件编码,比如要将一个GBK编码的文件转换成UTF-8编码,操作如下
enconv -L zh_CN -x UTF-8 filename

3. iconv 转换,iconv的命令格式如下:
iconv -f encoding -t encoding inputfile
比如将一个UTF-8 编码的文件转换成GBK编码
iconv -f GBK -t UTF-8 file1 -o file2
查看文件编码file命令
file ip.txt ip.txt: UTF-8 Unicode text, with escape sequences
一、利用iconv命令进行编码转换文件内容编码转换 iconv命令用于转换指定文件的编码,默认输出到标准输出设备,亦可指定输出文件。 用法: iconv [选项...] [文件...] 有如下选项可用: 输入/输出格式规范: -f, --from-code=名称 原始文本编码 -t, --to-code=名称 输出编码 信息: -l, --list 列举所有已知的字符集 输出控制: -c 从输出中忽略无效的字符 -o, --output=FILE 输出文件 -s, --silent 关闭警告 --verbose 打印进度信息 -?, --help 给出该系统求助列表 --usage 给出简要的用法信息 -V, --version 打印程序版本号 例子: iconv -f utf-8 -t gb2312 aaa.txt >bbb.txt 这个命令读取aaa.txt文件,从utf-8编码转换为gb2312编码,其输出定向到bbb.txt文件。

❻ 关于linux下打开windows文本文件乱码的问题

挂载Windows分区 1. 手工挂载 在Linux中也可以读取Windows分区,包括fat32格式的和ntfs格式的。首先你得知道Linux下对硬盘分区的称呼。比如Windows下的C盘通常是hda1,D盘是hda5,E盘是hda6,等等。详细情形请看相关文档。 要挂载Windows分区,首先得确定你所用的Linux系统的locale(这个locale包括了系统使用的语言和字符的编码等信息)。中文Linux 常用的locale是zh_CN.gb2312,zh_CN.gbk,zh_CN.gb18030 和 zh_CN.UTF-8 。 在默认安装中,Debian Linux和Mandriva Linux的locale是zh_CN.gb2312,而Ubuntu Linux和Fedora Linux的locale是zh_CN.UTF-8 。最好不要随便更改locale,否则会出现很多乱码的情形。要查看系统的locale,可以在终端下输入下面的命令查看: echo $LANG 其次,你得知道你的windows分区的格式,这个在windows的分区的属性中可以看到,一般是fat32和ntfs格式的。 假设你的locale是zh_CN.UTF-8,要挂载一个/dev/hda1的fat32格式的windows分区到/mnt/C目录(若这个目录不存在手工新建一个),可以在终端下输入以下命令(在Ubuntu里还需要在这行命令前加上sudo): mount -t vfat /dev/hda1 /mnt/C -o iocharset=utf8 如果你的locale不是zh_CN.UTF-8,把上面命令的utf8改为gb2312;如果这个windows分区是ntfs格式的,将上面命令的vfat改为ntfs。 这样挂载的ntfs格式的分区,只有root能读取,如果需要让普通用户也能读取,需要再加上umask=022选项,如下: mount -t ntfs /dev/hda1 /mnt/C -o iocharset=utf8,umask=022 类似地,如果要让挂载的分区允许所有用户读取和修改,可以将上面的umask=022,改为umask=0就可以了。 卸载分区就简单多了: umount /dev/hda1 有时候卸载分区时提示分区繁忙(device is busy),可以先用下面的命令看看哪个进程在使用此分区: fuser -cu /dev/hda1 假如屏幕的输出为 /dev/hda1: 8463m(cck) 则可以用此命令看这个进程对应的程序名字: ps 8463 然后可以用此命令结束此进程: kill -9 8463 这样就可以正常卸载分区了。 2. 自动挂载 要让Linux系统启动时自动挂载windows分区,可以把上述的命令写入 /etc/fstab 文件中,下面是一个例子: # /etc/fstab: static file system information. # #[file system] [mount point] [type] [options] [mp] [pass] proc /proc proc defaults 0 0 /dev/hda9 / ext3 defaults 0 1 /dev/hda13 none swap sw 0 0 /dev/hdc /media/cdrom iso9660 ro,user,noauto 0 0 /dev/fd0 /media/floppy auto rw,user,noauto 0 0 /dev/hda10 /mnt/debian ext3 defaults 0 0 /dev/hda1 /mnt/C ntfs utf8,umask=022 0 0 /dev/hda5 /mnt/D vfat utf8,umask=0 0 0

❼ 如何解决 linux 的乱码问题

出现这种情况的原因为两种操作系统的中文压缩方式不同,在windows环境中中文压缩一般为gbk,而在linux环境中为utf8,这就导致了在windows下能正常显示
txt文件在linux环境下打开呈现了乱码状态。
解决方法:在linux用iconv命令,输入命令如下
iconv -f gbk -t utf8 file.pdf > file.pdf.utf8
此时会重生一file.utf8文件,打开之后就能正常显示中文

linux系统下修改语言配置方法有:
法一:修改/etc/profile文件,增加export LANG=zh_CN.GB18030
法二:修改/etc/sysconfig/i18n文件,将
#LANG="en_US.UTF-8"
#SUPPORTED="en_US.UTF-8:en_US:en"
#SYSFONT="latarcyrheb-sun16"
改为
LANG="zh_CN.UTF-8"
SUPPORTED="zh_CN:zh:en_US.UTF-8:en_US:en:zh_CN.GB18030"
SYSFONT="latarcyrheb-sun16"

/etc/profile: 为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.
/etc/sysconfig/i18n 这里存放的是系统的区域语言设置
LANG 表明你当前系统的语言环境变量设置 ,这里是 zh_CN.GB18030
SUPPORTED 表明系统预置了那些语言支持 ,不在项目中的语言不能正常显示
SYSFONT 定义控制台终端字体,你文本登录的时候显示的字体是 latarcyrheb-sun16
I18N 是 internationalization 的缩写形式,意即在 i 和 n 之间有 18 个字母,本意是指软件的“国际化”.I18N支持多种语言,不过同一时间只能是英文和一种选定的语言,例如英文+中文、英文+德文、英文+韩文等等;

如果在SCRT上操作时中文乱码,可依次点击options--session options--appearance,选择character encoding为UTF-8

❽ linux下文件打开乱码怎么办

如果采用图形化界面请使用 gnome-open <dir路径> 打开。 如果依然乱码请检查是否安装了中文字体。 检查编码是否为gbk。 互联网工程师linux团队提醒您。工程师社区QQ群正式招募。群号:4040533 欢迎大家加入。互联网工程师是致力成为中国最具影响力的IT技术人才互动交流门户网站之一,帮助您成为网络工程师、系统工程师、linux专家、windows专家。

❾ linux下打开txt中文文档为什么会乱码

可能有以下几个原来因:

  1. 安装Linux的时候没源有安装中文字库。

  2. txt编码格式是utf-8或者其他格式,但是打开该文档的编辑器默认编码格式不是同一种,如使用了ASCII码。

  3. 该文档已经被加密。

  4. 该文档已经被损坏。

❿ linux中如何使用某种编码方式读取一个文本文件

liunx 的文件都是开源的。只要安装了就会自动关联。

阅读全文

与linux以gbk形式打开文件相关的资料

热点内容
vc修改文件名 浏览:149
linux65从域 浏览:321
用什么东西压缩文件 浏览:406
怎么删除ipad隐藏的APP 浏览:981
编程如何占用大量内存 浏览:116
多个excel表格文件如何组合 浏览:918
ubuntu内核升级命令 浏览:679
pgp文件夹 浏览:894
一键还原的文件是什么格式 浏览:581
女汉子微信名霸气十足 浏览:65
win10手机蓝屏修复 浏览:419
windows2008激活工具 浏览:259
g71的编程应注意什么 浏览:572
文件路径不符合是什么意思 浏览:543
qq如何换绑微信绑定 浏览:67
文件包下载的安装包在哪里 浏览:811
90版本升级不送 浏览:186
工具箱英文 浏览:382
南翔嘉定编程课哪里好 浏览:853
win10改变文件格式 浏览:475

友情链接