前言
當我們在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)顯示工具的編碼