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

前言

当我们在windows新建一个文件,里面有中文时,使用Xftp上传到linux服务器上,会出现乱码问题。

  • Windows的默认编码为GBK
  • Linux的默认编码为UTF-8

Xftp上传文件乱码

现在 windows 电脑上新建一个txt文件,命名为"中文.txt", 并且写入中文内容:上海-悠悠。

使用 xhsell 的 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格式

源文件编码UT-8

因为windows系统上的txt文件,左上角选择文件-另存为,会发现文件默认ANSI编码

解决办法1:可以在另存为的时候,修改编码格式为UTF-8,保存。
解决办法2:可以使用一些编辑器写文件内容,比如pycharm等。

修改好之后,重新上传过去,查看就可以正常的显示中文了

[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 终端页面在查看日志时候,中文显示乱码,需要改下Xshell的设置(一般默认就是UTF-8编码)。
打开Xshell终端-左上角文件-属性-终端-编码-勾选UTF-8

总结:保证三个地方编码(UFF-8)一致即可

  • 源文件(xxx.txt)的编码
  • 上传工具(Xftp)的编码
  • 终端(Xshell)显示工具的编码
posted @ 2019-10-13 10:34 上海-悠悠 阅读(...) 评论(...) 编辑 收藏