php - 带有特殊字符的文件名,如 "é"NOT FOUND

标签 php file url unicode filenames

我的网站上有一个文件夹,专门用于存放随机文件。我使用 php opendir 来列出所有文件,这样我就可以对页面进行一些样式设置。但是我上传的带有特殊字符的文件不起作用。当我点击它们时,它说找不到文件。但是当我检查目录时,文件就在那里。好像链接是错误的。知道如何获得这些包含特殊字符的文件名的正确链接吗?

最佳答案

这很棘手。这取决于您的文件系统对文件名使用什么编码以及您的网络服务器或 PHP 函数如何(如果)转换编码。

首先,确保您的链接从不使用未编码的非 ASCII 字符。 URL 应为 UTF-8,即 é 应编码为 %C3%A9。如果这不起作用,请尝试 %E9(ISO-8859-1 中的é)。

您可能会发现 iconv() 函数对转换编码很有用。 rawurlencode() 是必须的。

关于php - 带有特殊字符的文件名,如 "é"NOT FOUND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1580475/

相关文章:

python - 我想抓取多个页面,但我得到了最后一个 url 的结果。为什么?

javascript - 简单的 JavaScript URL 路由正则表达式

php - 从 XMLHttpRequest 动态添加标记内容的首选方式

PHP Web 应用程序 : mysql database design best practices question

php - 获取 URL 重定向时 File_get_contents() 不工作

java - 在包含 1 亿个字符串(无重复字符串)的大型文本文件中进行高效子字符串搜索

java - 使用路径打开并运行文件

php - 如何在 Magento 中使用订单对象获取网站 ID

python - 语法错误 : unexpected character after line continuation character in python

java - 从 Java 中的 httprequest 获取重定向