window到linux文件名乱码和文件内容乱码解决总结「建议收藏」

大家好,很高兴再次与你们见面,我是你们的朋友全栈君。

在Windows系统上,文件名通常采用GBK编码,而文件内容的编码可以通过文本编辑器如EditPlus来查看或设置。

当将在Windows上正常显示的文件传输到Linux系统时,常常会因为中文编码问题导致文件名和文件内容出现乱码。

查看Linux系统的编码设置:

[root ~]# echo $LANG
zh_CN.UTF-8
[root ~]# locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
<p>LC_ALL=

以上是基于CentOS 6.5的查询和设置。之前设置为USA.UTF-8,后来调整为支持中文的zh_CN.UTF-8,需要安装支持中文的软件包:

yum -y groupinstall chinese-support

修改和设置编码:

[root ~]# vim /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"</p><p>[root ~]# source /etc/sysconfig/i18n

完成上述设置后,可以使用XFTP和XSHELL进行以下实验。

在XSHELL中,通过文件 -> 属性 -> 终端设置编码进行设置,XFTP暂时不做设置。

window到linux文件名乱码和文件内容乱码解决总结「建议收藏」

一、解决Linux文件名乱码问题:

  1. 创建包含中文字符的测试目录和测试文件,并通过XFTP上传到Linux服务器:

window到linux文件名乱码和文件内容乱码解决总结「建议收藏」

在XFTP中,中文显示一切正常。

  1. 在Linux系统中发现文件名出现乱码。同时使用file命令查看文件:

window到linux文件名乱码和文件内容乱码解决总结「建议收藏」

此时进行转码操作:

腾讯云AI代码助手 腾讯云AI代码助手

基于混元代码大模型的AI辅助编码工具

腾讯云AI代码助手 205 查看详情 腾讯云AI代码助手
convmv --notest --nosmart -f gbk -t utf8 -r 文件或者目录

参数说明:

  • -f:从什么编码转换
  • -t:转换成什么编码
  • --nosmart:如果已经是UTF-8,忽略
  • -r:包含所有子目录
  • --notest:不加此参数只会列出需要转换的文件,不做实际转换,所以必须加上

window到linux文件名乱码和文件内容乱码解决总结「建议收藏」

通过上述步骤,已经解决了文件名乱码问题。接下来设置XFTP的编码以匹配Linux的编码。

  1. 在XFTP中,通过文件 -> 属性 -> 选项,将编码设置为UTF-8,并选择文件名传输编码。这样显示的文件名将直接使用UTF-8编码,Linux系统中就不会出现乱码。

window到linux文件名乱码和文件内容乱码解决总结「建议收藏」window到linux文件名乱码和文件内容乱码解决总结「建议收藏」

  1. 通过上述设置,如果发现压缩包文件在服务器端解压后出现乱码,建议先在Windows系统中解压,然后将整个目录传输到服务器上,检查传输后的文件是否仍然出现乱码。通过实践,发现中文可以正常显示。

二、解决文件内容乱码问题:

  1. 使用cat命令查看文件内容时发现乱码:

window到linux文件名乱码和文件内容乱码解决总结「建议收藏」

  1. 使用iconv命令进行转码:
iconv -f gbk -t utf8 test测试.txt -o test测试.txt

通过测试,已经成功将文件内容乱码转码。

同时,如果不希望覆盖原文件,可以使用以下命令:

iconv -f gbk -t utf8 haha.txt > haha.txt.utf8

这种方法不会覆盖原文件,但原文件将为空。

window到linux文件名乱码和文件内容乱码解决总结「建议收藏」

  1. 对于从Windows传输过来的Shell脚本,需要进行转码:
yum install -y dos2unix
dos2unix xxx.sh

window到linux文件名乱码和文件内容乱码解决总结「建议收藏」

通过上述两种方法,基本解决了从Windows到Linux系统的文件名和文件内容乱码问题。如果遇到新的问题,将会继续补充。

发布者:全栈程序员栈长,转载请注明出处:https://www.php.cn/link/87a57c9dce29e600b772912ff1c4c1c7 原文链接:https://www.php.cn/link/c8377ad2a50fb65de28b11cfc628d75c

以上就是window到linux文件名乱码和文件内容乱码解决总结「建议收藏」的详细内容,更多请关注其它相关文章!

本文转自网络,如有侵权请联系客服删除。