首页 / 技术 / 正文

解决网站搬家出现的文件名乱码问题(Linux系统文件名乱码问题)

2015年08月30日 暂无评论 ... 技术

上次从 DirectAdmin 中搬运文件到新的主机服务器的时候又出现了中文文件搬运后乱码的问题,这已经不是第一次发生这种情况了,具体是从旧服务器上下载下来的压缩文件是没有问题的,但是解压后上传到新的服务器上后,所有的中文文件名都变成了乱码。几乎每次迁移服务器的时候都会发生这种情况。于是我从源头开始,仔细研究了这个问题产生的原因,最终找到了解决方案。

产生文件乱码的原因

要想找到解决问题的方法,就必须知道问题产生的原因。分析原因,文件名出现乱码的只有以中文汉字命名的文件,而数字和英文的文件可以正常显示,而且这些文件往往都是从 Linux 系统(Linux下的 web 服务器)下搬运到 Windows 平台之后发生的乱码。所以问题就出在这里。

Linux 系统下的中文文件名的默认字符集方式是 UTF-8 。

Windows 系统下的中文文件名的默认字符集方式是 GBK 。

所以从 Windows 系统上上传到 Linux 服务器上的中文文件名,肯定会出现乱码错误。

解决文件乱码的方案

首先要明白的是,由于各种压缩文件的算法不一样,zip 压缩是没有定义编码,所以在跨系统传递压缩文件的时候,一定不要选择使用 zip,否则从旧主机上下载下来的压缩文件就直接变成乱码,更别提还要上传到新的服务器上了。建议选择 tar.gz 或者 7z 格式。

1、如果是 Linux 主机往另外的 Linux 主机上搬移网站的话,就尽量不要出现在windows平台下进行压缩和解压缩操作,直接从把下载的压缩包上传到另外的主机上,然后在新的主机上进行操作。

2、如果有必要必须对下载后的文件进行解压整理操作的话,建议在 Linux 系统下进行操作。

3、当然,对于没有安装 Linux 系统的朋友来讲,为了这样的小事安装个 Linux 显然是不合适的。推荐的方式是使用 ftp 上传文件,并使用 ftp软件的自动转码功能,这个方法算得上是不用敲命令之外比较简便的方式了。

 

根据测试,比较流行并比较高调的 filezilla 并不能自动将 Windows 系统中的字符编码转换为 Linux 下的 utf-8 字符,推荐使用 CuteFTP 。

CuteFTP 是一款收费软件,可以免费试用,功能也完全足够了。

 

安装之后如果是英文版,请首先设置 Tools->Global Options->Display->chinese.lng 重启软件后更换为中文界面。

在默认设置下,直接使用 CuteFTP 连接服务器,并在 Windows 下上传汉字文件名的文件,在服务端是可以正常显示。如果还是出现错误,可以打开 工具->全局选项->传输 ,设置传输方法为“自动检测”,数据模式为“自动”。

Cute传输设置

 

其实作为一款 FTP传输软件,CuteFTP 也是被普遍认为是传输速度比较快的一款了。把 CuteFTP 作为常用的 FTP软件也是不错的选择,尤其是使用阿里云主机这种没有自带 web 管理界面的主机。

 

另:软件有时候打开连接服务器后显示服务器端的文件是乱码,临时解决方式是任意上传个文件其他文件名便可自动恢复,但是却不知道怎么设置,希望知道的人告知。

暂无评论

发布评论