【问题标题】:How to properly link to files with accents in their names in a LAMP envirionment如何在 LAMP 环境中正确链接到名称中带有重音符号的文件
【发布时间】:2010-10-06 12:31:51
【问题描述】:

我制作了一个 php 脚本,它遍历目录中的文件并输出指向它们的链接。文件名是西班牙语,所以有些文件名包含 á、é 等字符。

我的脚本在我的开发机器 windows+apache+php 中运行良好,但是它在我的主机服务器 linux+apache+php 中无法运行,它找不到文件。

一些搜索建议使用 urlencode(),但是当我这样做时,它会在我的开发机器下中断,因此我无法接受,尽管我没有在我的网络服务器中尝试过。

编辑:有关使用 urlencode() 时开发机器上的错误的更多详细信息。

似乎有 2 个错误,一个是文件名包含 á、é 等字符。另一个是文件名包含空格。

带有空格的文件名(即“Calidad Total .doc”)获取以下链接http://localhost/temarios/docs/Calidad+total+.doc,这给了我一个 404 file not found 错误。将地址栏中的 '+' 替换为 ' 可以正常工作。

带有重音字符的文件名(即 Economía.doc)获得链接 http://localhost/temarios/docs/Econom%EDa.doc,这给了我一个 403 Forbidden 错误。在地址栏中将 '%ED' 替换为 'í' 可以正常工作。

我已经在 Firefox 3 和 IE8 windows 7 beta 中进行了测试,并且在两种浏览器中都发生了同样的事情。

【问题讨论】:

    标签: html lamp character-encoding


    【解决方案1】:

    您应该对它们进行 urlencode 的原因是 URL 必须仅包含可打印的 US-ASCII 字符。

    “URL 仅使用 US-ASCII 编码字符集的图形可打印字符编写。”

    将您在开发机器上收到的错误的详细信息发布出来并找出那里的问题可能是明智之举。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-08
      • 2019-12-25
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      • 2020-12-16
      • 1970-01-01
      • 2011-07-18
      相关资源
      最近更新 更多