ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux文本编码格式转换

2022-03-28 14:33:23  阅读:233  来源: 互联网

标签:编码 文本 data linux Linux win txt root centos8


widows文本格式和Linux文本格式的区别

[root@centos8 data]#cat linux.txt	#linux文本文件
a
b
c
[root@centos8 data]#cat win.txt		#windows文本文件
a
b
c

#file命令可看到文件格式有所不同(主要是行结束符的不同)
[root@centos8 data]#file win.txt linux.txt
win.txt: ASCII text, with CRLF line terminators
linux.txt: ASCII text

#linux文本文件内容(十六进制)
[root@centos8 data]#hexdump -C linux.txt
00000000	61 0a 62 0a 63 0a		|a.b.c.|
00000006

#windows文本文件内容(十六进制)
[root@centos8 data]#hexdump -C win.txt
00000000	61 0d 0a 62 0d 0a 63		|a..b..c|
00000007

#使用-c查看linux文本文件内容(单字节字符显示)
[root@daben ~]# hexdump -c linux.txt 
0000000   a  \n   b  \n   c  \n   	#此处可观察到 \n 对应十六进制编码0a
0000006

#使用-c查看windows文本文件内容(单字节字符显示)
[root@daben ~]# hexdump -c linux.txt 
0000000   a  、\r\n   b  \r\n   c  \r\n   	#此处可观察到 \n 对应十六进制编码0a
0000007
##结论:linux和windows文本文件的主要差异在于回车符的定义。linux使用\n作为行结束符,而window使用\r\n作为行结束符。

Linux和windows文本格式相互转换

#安装转换工具
[root@centos8 data]#dnf -y install dos2unix

#将Windows的文本格式转换成的Linux文本格式
[root@centos8 data]#dos2unix
win.txt
dos2unix: converting file win.txt to Unix format...

[root@centos8 data]#file win.txt
win.txt: ASCII text

#将Linux的文本格式转换成Windows的文本格式
[root@centos8 data]#unix2dos
win.txt
unix2dos: converting file win.txt to DOS format...

[root@centos8 data]#file win.txt
win.txt: ASCII text, with CRLF line terminators

转换文件字符集编码

#显示支持字符集编码列表
[root@centos8 ~]#iconv -l
#windows7上文本默认的编码ANSI(GB2312)

[root@centos8 data]#file windows.txt
windows.txt: ISO-8859 text, with no line terminators

#查看Linux系统编码
[root@centos8 data]#echo $LANG
en_US.UTF-8

#默认在linux无法正常显示文本内容
[root@centos8 data]#cat windows.txt
▒▒▒▒▒▒[root@centos8 data]#

#将windows7上文本默认的编码ANSI(GB2312)转换成UTF-8
[root@centos8 data]#iconv -f gb2312 windows.txt -o windows1.txt

#修改编码后显示正常
[root@centos8 data]#cat windows1.txt
马哥教育[root@centos8 data]#ll windows1.txt
-rw-r--r-- 1 root root 12 Mar 23 10:13 windows1.txt

[root@centos8 data]#file windows1.txt
windows1.txt: UTF-8 Unicode text, with no line terminators

#将UTF-8转换成windows10上文本默认的编码ANSI(GB2312)
[root@centos8 data]#iconv -f utf8 -t gb2312 windows1.txt -o windows2.txt
[root@centos8 data]#file windows2.txt
windows2.txt: ISO-8859 text, with no line terminators

标签:编码,文本,data,linux,Linux,win,txt,root,centos8
来源: https://www.cnblogs.com/peen/p/16066895.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有