热搜:NVER node 开发 php

linux中文文件名不能访问,求教,在线等。

2024-07-27 20:55:02
linux中文文件名不能访问,求教,在线等。

以前windows的服务器被别人直接丢了很多中文文件名的图片,现在换到linux上面了,中文的图片就不能访问了,如http://www.gopalau.net/files/PPR/%E5%9B%BD%E7%8E%8B%E4%B8%8E%E7%8E%8B%E5%90%8E%E9%A4%90%E5%8E%85.jpg
网上找了很多,都说需要mod_encoding,但是按照相关方法还是不行,有些rpm也装不上,或是没有资源了。
我的服务器类型是:Apache/2.4.6 (CentOS) PHP/5.4.16
请问有没有什么方法能解决,谢谢了。
@xuzuning 


回复讨论(解决方案)

%E5%9B%BD%E7%8E%8B%E4%B8%8E%E7%8E%8B%E5%90%8E%E9%A4%90%E5%8E%85.jpg
是 utf-8 的 国王与王后餐厅.jpg 的 url 编码

你在迁移服务器时注意到中文文件名的字符集了吗?
也就是说你的新服务器上的对应目录里有 国王与王后餐厅.jpg 这个文件吗?


从截图上开,你的 web 服务器是不支持中文 url 的(Apache 默认就是不支持中文 url 的)

%E5%9B%BD%E7%8E%8B%E4%B8%8E%E7%8E%8B%E5%90%8E%E9%A4%90%E5%8E%85.jpg
是 utf-8 的 国王与王后餐厅.jpg 的 url 编码

你在迁移服务器时注意到中文文件名的字符集了吗?
也就是说你的新服务器上的对应目录里有 国王与王后餐厅.jpg 这个文件吗?


从截图上开,你的 web 服务器是不支持中文 url 的(Apache 默认就是不支持中文 url 的)


有的,而且用迅雷下载也可以下载下来。

我的程序是 gbk 编码的

也就是说你在服务器上的中文文件名也是 gbk 编码的

你并没有如实反映情况!

你要按 gbk 中文做 url 编码
http://www.gopalau.net/files/PPR/%B9%FA%CD%F5%D3%EB%CD%F5%BA%F3%B2%CD%CC%FC.jpg

我的程序是 gbk 编码的

也就是说你在服务器上的中文文件名也是 gbk 编码的

你并没有如实反映情况!


之前因为直接从window打包压缩放到linux上面的,解压出来是乱码如:PPR-+-+-恽芯?++ャ鳞?使.jpg,所以我就直接再放了一个“国王与王后餐厅.jpg”上去,你说的是没有如实反映情况是什么呢?能告诉你需要我提供哪些信息呢?

你要按 gbk 中文做 url 编码
http://www.gopalau.net/files/PPR/%B9%FA%CD%F5%D3%EB%CD%F5%BA%F3%B2%CD%CC%FC.jpg


我也想过将url编码转换一下,但是图片全部是在文章里面隔三岔五的显示一下

能不能给我一个正则表达式,将内容里面的 urlencode(iconv("utf-8","gbk","祖宁.jpg")),谢谢老大。

我说你 没有如实反映情况,是因为:
你的中文文件名实际是 gbk 的,而你却说已经转成 utf-8 的了

你用 utf-8 的中文文件名,去访问 gbk 的中文文件,当然是找不到的

XZN


有没有办法修改liunx配置
服务器类型是:Apache/2.4.6 (CentOS) PHP/5.4.16
让直接可以以下面这个网址访问
http://www.gopalau.net/files/palasia-hotel-palau/帛琉大饭店游泳池.jpg  (linux现在不能访问)
以前的
http://www.citssz.net/files/palasia-hotel-palau/帛琉大饭店游泳池.jpg(之前的windows可以访问)

为了跨平台还是建议不要用中文命名