我正试图解决这个问题,但我很困惑莫。 我的网站上有一个目录,其中包含带有希腊文件名的pdf文件(即ΤΙΜΟΚΑΤΑΛΟΓΟΣ.pdf) 我希望在网页上有文件链接,以便用户可以打开或保存文件。 到目前为止,我可以列出文件,但如果我点击它们,我会收到404错误。就好像服务器认为他们不在那里,尽管他们是。 我理解这可能是一个编码问题,但除此之外,我不知道该寻找什么。网站编码为utf-8,为了正确显示文件名,我必须使用mb_convert_encoding($ file-> filename,'utf8','iso-8859-7')。
这是网址:http://www.med4u.gr/timokatalogoi/ 这是目录列表:http://www.med4u.gr/pricelists/
该网站基于Joomla,它托管在Linux服务器上。
有什么想法吗?
答案 0 :(得分:3)
ISO-8859- *必须死! (这不是个人的!)用UTF-8做所有事情。一切。有充分的理由,当我们看到它们被使用时,我们中的一些人会感到不安,特别是拉丁-1(8859-1),它咬了很多人。我认为你会发现将它们转储并继续使用UTF-8非常有帮助。
要检查的事项:
header('Content-Type: text/html;charset=UTF-8');
。<meta>
的{{1}}标记中会很有帮助。CPanel非常灵活,所以这一切都可以毫不费力。如果您想了解更多细节,请随时发表评论。
如果你有一个数据库,还有一些可以跳过的箍,但这是值得的。使用UTF-8,您永远不必担心,而且它是明确的,面向未来的做事方式。
答案 1 :(得分:1)
我们假设为了论证,磁盘上的文件名是aa.pdf,但您的转换将其显示为ab.pdf。您需要还原转换,使其返回aa.pdf,或者教服务器将ab.pdf的请求重新映射或重定向到此文件。或者,如果您愿意,请将文件重命名为ab.pdf,如果您的文件系统可以处理此名称。
答案 2 :(得分:0)
这绝对是一个编码问题。您需要转义URL,或将其转换为服务器识别的任何字符集。
e.g。 'ΤΙΜΟΚΑΤΑΛΟΓΟΣLASER.pdf'in iso-8859-7 ='ÔÉÌÏÊÁÔÁËÏÃÏÓLASER.pdf'iniso-8859-1