以前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 编码的
你并没有如实反映情况!
你要按 gbk 中文做 url 编码
http://www.gopalau.net/files/PPR/%B9%FA%CD%F5%D3%EB%CD%F5%BA%F3%B2%CD%CC%FC.jpg
能不能给我一个正则表达式,将内容里面的 urlencode(iconv("utf-8","gbk","祖宁.jpg")),谢谢老大。
我说你 没有如实反映情况,是因为:
你的中文文件名实际是 gbk 的,而你却说已经转成 utf-8 的了
你用 utf-8 的中文文件名,去访问 gbk 的中文文件,当然是找不到的
XZN
为了跨平台还是建议不要用中文命名