Windows系统将文件上传到Linux系统后显示乱码

问题描述

Windows里的文件在Unix和Mac下打开的话,在每行的结尾可能会多出一个^M符号,出现Dos格式换行符,Unix和Mac系统下的文件在Windows里打开的话,所有文字会变成一行。

问题原因

Windows和Linux系统对回车换行的处理方式不一致。

解决方案

为了避免这种情问题的发生,我们可以在Linux系统内转换格式。

说明

说明:CentOS 6与CentOS 8操作系统版本结束了生命周期(EOL),按照社区规则,CentOS 6/8的源地址内容已移除。当您在CentOS 6/8系统内继续使用默认配置的源地址时会发生报错。建议您先切换CentOS 6/8的源地址,然后再进行操作。具体操作,请参见CentOS 6 EOL如何切换源?CentOS 8 EOL如何切换源?

  • CentOS系统可以直接使用dos2unix和unix2dos进行格式之间的相互转换。

    1. 执行如下命令,安装dos2unix和unix2dos。

      yum install dos2unix unix2dos

    2. 执行如下命令,转换txt文件为unix方式。

      dos2unix Noname1.txt

      系统显示类似如下。 image.png

  • Ubuntu系统需要通过todos进行处理。

    1. 执行如下命令,安装todos。

      sudo apt-ge update
      sudo apt-get install tofrodos

    2. 执行如下命令,转换为unix。

      fromdos Noname1.txt 

    3. 执行如下命令,转换为dos格式。

      todos Noname1.txt

适用于

  • 云服务器ECS