我正在使用Fork CMS,当上传文件名中包含特殊字符的文件(例如é或à)时,文件名(présentation.pdf)将作为pr%c3%a9sentation.pdf保存在FTP上。
使用后端链接到文件时,网址显示为http://www.domain.com/files/pr%c3%a9sentation.pdf,但几乎所有浏览器都会将您链接到http://www.domain.com/files /présentation.pdf,这会导致出现http 404错误。
有关我应该在哪里寻找的任何建议吗?
答案 0 :(得分:3)
尝试按以下方式访问它:http://www.domaine.com/files/pr%25c3%25a9sentation.pdf
但是你应该在保存之前从文件名中删除重音字符,这样可以避免任何问题。
答案 1 :(得分:2)
确保您的FTP服务器和FTP客户端都遵守RFC 2640,因此它们使用UTF-8编码而不是ASCII。 ASCII不支持非英文字符,包括带有重音符号的字符。有关详情,请参阅此处:http://wiki.filezilla-project.org/Character_Set
<强>更新强>
我猜“FTP”是指服务器上的存储空间,而不是通过文件传输协议上传文件。如果文件是通过Fork CMS上传的,并且上传文件的文件名变为pr%c3%a9sentation.pdf,则Fork CMS无法正确处理文件名。
答案 2 :(得分:1)
最后的答案是真的 但是如果你想强制它,用%25c3%替换第一个%并删除第二个。
答案 3 :(得分:1)
如果文件名称中包含%
,则必须执行%25
以重现相同的%
字符。因此pr%25c3%25a9sentation.pdf
会转换为pr%c3%a9sentation.pdf
,这是文件的名称。
一个理智的解决方案是从文件名中删除特殊字符并尊重Internet文件命名约定,而不是试图规避一开始就不存在的问题。
旁注:我是法国人,所以不要告诉我presentation
不像présentation
那样可读。
答案 4 :(得分:1)
最新的Fork CMS版本已解决此问题, 通过使用CommonUri :: uri()