utf8文件名和希腊字符

时间:2011-09-21 15:11:37

标签: php utf-8 joomla

我正试图解决这个问题,但我很困惑莫。 我的网站上有一个目录,其中包含带有希腊文件名的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服务器上。

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

ISO-8859- *必须死! (这不是个人的!)用UTF-8做所有事情。一切。有充分的理由,当我们看到它们被使用时,我们中的一些人会感到不安,特别是拉丁-1(8859-1),它咬了很多人。我认为你会发现将它们转储并继续使用UTF-8非常有帮助。

要检查的事项:

  1. 存储以UTF-8编码的文件:通常没有困难。
  2. 确保您的服务器使用UTF-8字符集发送文件:在PHP顶部附近添加header('Content-Type: text/html;charset=UTF-8');
  3. 万一有人保存您的网页,在这种情况下,将相同的内容放在<meta>的{​​{1}}标记中会很有帮助。
  4. 在浏览器中全部检查:右键单击,查看页面信息,并确保编码正确。
  5. 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