Linux学习23-Xftp上传文件显示乱码问题

当我们在windows上创建包含中文字符的新文件,并使用xftp上传到linux服务器时,可能会遇到文件显示乱码的问题。

Windows默认的编码是GBK,而Linux默认使用UTF-8编码,Xftp传输工具的编码设置也会影响文件的显示。

在Windows电脑上新建一个名为“中文.txt”的txt文件,并输入中文内容“上海-悠悠”。

使用Xshell的Xftp工具上传到Linux服务器。

在Xftp上传页面,文件名并没有出现乱码问题。

然而,在Linux上查看文件时,却出现了乱码。

[root@yoyo docker-run]# ll
-rw-r--r-- 1 root root  422 Aug 23 00:15 test_h.py
-rw-r--r-- 1 root root    9 Oct 13 10:11 ????。txt
-rw-r--r-- 1 root root   10 Oct 13 09:55 yoyo.txt

出现这个问题的原因主要是由于Windows使用GBK编码,而Linux使用UTF-8编码,Xftp的编码设置也需要调整。

要解决这个问题,首先需要在Xftp中设置编码。打开Xftp工具,进入属性设置,将编码格式设为UTF-8。

重新上传文件后,再次查看:

[root@yoyo docker-run]# ll
-rw-r--r-- 1 root root    9 Oct 13 10:21 中文.txt
[root@yoyo docker-run]# cat 中文.txt
???-??
[root@yoyo docker-run]#

虽然文件名已经能正确显示中文,但文件内容仍然是乱码。为了解决这个问题,需要将Windows上的源文件内容编码设置为UTF-8。

在Windows上,txt文件默认使用ANSI编码。可以通过“文件-另存为”选项,将编码格式改为UTF-8保存。

解决方法有两种:一是另存为时选择UTF-8编码,二是使用支持UTF-8编码的编辑器(如Pycharm)编辑文件。

将文件编码改为UTF-8后,重新上传到Linux服务器,查看文件内容:

[root@yoyo docker-run]# ll
-rw-r--r-- 1 root root   18 Oct 13 10:28 中文.txt
[root@yoyo docker-run]# cat 中文.txt
上海-悠悠
[root@yoyo docker-run]#

如果在Xshell终端查看日志时,中文显示乱码,需要调整Xshell的编码设置(通常默认是UTF-8)。打开Xshell终端,进入“文件-属性-终端-编码”选项,选择UTF-8编码。

总结:要确保文件在Windows和Linux之间传输时不出现乱码问题,必须保证源文件(如xxx.txt)、上传工具(Xftp)和终端显示工具(Xshell)的编码设置一致,均为UTF-8。