加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Fedora 25上——Linux——打开windows平台文本文件(记事本)乱

发布时间:2022-10-27 14:10:05 所属栏目:Linux 来源:转载
导读:

有时候从windows平台得到一个文本文件,在linux平台打开会乱码。有可能是由于编码不同导致的。
windows平台上,不同的国家和地区制定了不同的标准,由此产生了 GB2312、GBK、GB18030、Bi

有时候从windows平台得到一个文本文件,在linux平台打开会乱码。有可能是由于编码不同导致的。

windows平台上,不同的国家和地区制定了不同的标准,由此产生了 GB2312、GBK、GB18030、Big5、Shift_JIS 等各自的编码标准。这些使用多个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。

在简体中文Windows操作系统中,ANSI 编码代表 GBK 编码;在繁体中文Windows操作系统中,ANSI编码代表Big5;在日文Windows操作系统中,ANSI 编码代表 Shift_JIS 编码。

而在Linux平台一般都是UTF-8编码。

下面以某文件1.txt为例,将其从UTF-8转换到GBK编码。

查看1.txt的文件编码:

[root@localho33]# file -i 1.txt

linux编码_查看linux服务编码_linux h264硬编码

txt: text/plain; charset=utf-8#说明其编码格式是UTF-8

将其转换成GBK编码:

[root@localho33]# iconv 1.txt -f UTF-8 -t GBK -o 2.txt

解释:iconv 是编码转换命令;1.txt是被操作的文件;-f UTF-8是说,从(from)UTF-8转换(文件本来编码);-t GBK是说,转到(to)GBK编码(目的编码);-o 2.txt是说,将结果生成一个新输出文件名字是2.txt .

下面以某文件2.txt为例,将其从GBK转换到UTF-8编码。

查看2.txt的文件编码:

[root@localho33]# file -i 2.txt

2.txt: text/plain; charset=iso-8859-1 #说明其编码格式是GBK,关于编码格式的详细知识,请自行百度。

将其转换成UTF-8编码:

linux编码_查看linux服务编码_linux h264硬编码

[root@localho33]# iconv 2.txt -f GBK -t UTF-8 -o 3.txt#注意,如果将此处GBK,改为iso-8859-1,是会出现乱码的。

解释:iconv 是编码转换命令;2.txt是被操作的文件;-f UTF-8是说,从(from)GBK转换(文件本来编码);-t UTF-8是说,转到(to)UTF-8编码(目的编码);-o 3.txt是说,将结果生成一个新输出文件名字是3.txt .

小常识:

UTF-8是通用编码,如果能用就用UTF-8编码,这样跨平台会好些。

GB2312/GBK

这是汉字的国标码,专门用来表示汉字,是双字节编码,而英文字母和iso8859-1一致(兼容iso8859-1编码)。其中gbk编码能够用来同时表示繁体字和简体字,而gb2312只能表示简体字linux编码,gbk是兼容gb2312编码的。

UTF

考虑到unicode编码不兼容iso8859-1编码,而且容易占用更多的空间:因为对于英文字母,unicode也需要两个字节来表示。所以unicode不便于传输和存储。因此而产生了utf编码,utf编码兼容iso8859-1编码,同时也可以用来表示所有语言的字符,不过,utf编码是不定长编码,每一个字符的长度从1-6个字节不等。另外,utf编码自带简单的校验功能。一般来讲,英文字母都是用一个字节表示,而汉字使用三个字节。

注意,虽然说utf是为了使用更少的空间而使用的,但那只是相对于unicode编码来说,如果已经知道是汉字,则使用GB2312/GBK无疑是最节省的。不过另一方面,值得说明的是,虽然utf编码对汉字使用3个字节,但即使对于汉字网页,utf编码也会比unicode编码节省,因为网页中包含了很多的英文字符。

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!