linux文件编码转换及Windows上创建的文件转为Linux格式

linux文件编码转换及Windows上创建的文件转为Linux格式,第1张

在Linux上查看文件,有时候会出现中文乱码的问题。这是因为文件编码不兼容导致的,需要进行文件转码。

1、用VI查看文件编码,在Vi命令模式以下命令,即可显示文件编码格式。

2、 改写~/.vimrc 文件,在文件中添加以下内容,就可以让vi自动识别UTF-8或者GBK编码的文件。

将window上创建的脚本传输到linux执行时,会出现-bash: xxx: /bin/sh^M: bad interpreter: No such file or directory的错误。

1、vi打开文件,并在命令模式下输入以下命令回车,此时看到的是dos格式。

2、修改文件格式, 同样在vi命令格式下,输入以下修改文件格式。

在Windows下换行时,有两个字符:回车(/r)和换行(/n)。但在Linux下,只有一个换行(/n)

可使用unix2dos和dos2unix命令进行格式的转换:

参数:

-k 保持输出文件和输入文件的日期时间戳不变

-o file 默认模式 . 将file转换,并输出到file

-n infile outfile 新模式. 转换infile, 并输出到outfile

1. unix2dos

假设用vi新建一文本文件,输入123456

[root@centos test]# ls -l a.txt

-rw-r--r-- 1 root root 7 Jan 7 21:31 a.txt

[root@centos test]# hexdump -c a.txt

0000000 1 2 3 4 5 6 /n

0000007

[root@centos test]# unix2dos -n a.txt b.txt

unix2dos: converting file a.txt to file b.txt in DOS format ...

[root@centos test]# ls -l

total 8

-rw-r--r-- 1 root root 7 Jan 7 21:31 a.txt

-rw------- 1 root root 8 Jan 7 21:34 b.txt

[root@centos test]# hexdump -c a.txt

0000000 1 2 3 4 5 6 /n

0000007

[root@centos test]# hexdump -c b.txt

0000000 1 2 3 4 5 6 /r /n

0000008

b.txt是转换后的DOS下的文件

2. dos2unix

[root@centos test]# dos2unix -n b.txt c.txt

dos2unix: converting file b.txt to file c.txt in UNIX format ...

[root@centos test]# ls -l

total 12

-rw-r--r-- 1 root root 7 Jan 7 21:31 a.txt

-rw------- 1 root root 8 Jan 7 21:34 b.txt

-rw------- 1 root root 7 Jan 7 21:38 c.txt

[root@centos test]# hexdump -c b.txt

0000000 1 2 3 4 5 6 /r /n

0000008

[root@centos test]# hexdump -c c.txt

0000000 1 2 3 4 5 6 /n

0000007

c.txt是转换后unix下的文本文件

Windows下的文字到了Linux下乱码原因是Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8,编码格式不相同导致的乱码。几种解决办法如下: 1、在Windows上用记事本把文件,选择另存为编码方式改为 UTF-8; 2、在Linux上用vim编辑,在...


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8788685.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-21
下一篇 2023-04-21

发表评论

登录后才能评论

评论列表(0条)

保存