Utf8文件名和希腊字符


utf8 filenames and greek chars

我想弄清楚这个问题,但我对这个问题很困惑。我有一个目录在我的网站包含pdf文件与希腊文件名(即ΤΙΜΟΚΑΤΑΛΟΓΟΣ.pdf)我想有一个网页上的文件链接,以便用户可以打开或保存文件。到目前为止,我可以列出文件,但如果我点击他们,我得到一个404错误。就好像服务器认为它们不在那里,尽管它们在那里。我知道这可能是一个编码问题,但除此之外,我不知道要找什么。网站编码是utf-8,为了正确显示文件名,我必须使用mb_convert_encoding($file->filename, 'utf8', 'iso-8859-7')。

这是url: http://www.med4u.gr/timokatalogoi/这是目录清单:http://www.med4u.gr/pricelists/

该网站是基于Joomla,并托管在linux服务器上。

任何想法?

ISO-8859-*必须死!(这不是针对你!)使用UTF-8进行所有操作。一切。有充分的理由,当我们看到它们被使用时,我们中的一些人会感到不安,尤其是Latin-1(8859-1),它会咬很多人。我认为你会发现把它们扔掉,转到UTF-8是很有帮助的。

检查事项:

  1. 用UTF-8编码存储文件:通常没有困难。
  2. 确保您的服务器正在发送具有UTF-8字符集的文件:在PHP的顶部添加header('Content-Type: text/html;charset=UTF-8');
  3. 只是为了防止有人保存你的页面,在这种情况下,把同样的东西放在head<meta>标签中是有帮助的。
  4. 检查它在你的浏览器:右键单击,查看页面信息,并确保编码是正确的。

CPanel是非常灵活的,所以这一切都是可行的,没有太多的麻烦。如果你想知道更多的细节,请随时评论。

如果你有一个数据库,有更多的障碍要跳过,但这是值得的。使用UTF-8,您永远不必担心,它是确定的、面向未来的做事方式。

为了便于讨论,我们假设磁盘上的文件名是aa.pdf,但是转换将其显示为ab.pdf。您需要恢复转换,使其指向aa.pdf,或者教服务器将对ab.pdf的请求重新映射或重定向到该文件。如果您愿意,也可以将文件重命名为ab.pdf,前提是您的文件系统可以处理此名称。

这肯定是编码问题。您需要转义URL,或将其转换为服务器可识别的字符集。

。"ΤΙΜΟΚΑΤΑΛΟΓΟΣLASER.pdf"iso - 8859 - 7 ="OEIIEAOAEIAIO LASER.pdf"iso - 8859 - 1