在我的一个基于PHP的网站中,我有一个脚本,可以在CentOS服务器上显示图像。图像路径取自MySQL数据库。存储在服务器上的图像文件(以及数据库中的相应条目)中有重音字符和空格。
因此,当PHP脚本试图访问图像URL时,它会返回一个文件未找到错误。当我检查apache错误日志时,我可以看到文件名中的重音字符显示为“2-EDUCACI\xc3\x93N SECUNDARIA-ACTIVIDAD ACAD\xc3\x89MICA VIAJE FIN DE CURSO(1).jpg”(图像名“2-EDUCACIN SECUNDARIA-ACTIVIDAD ACADMICA-VIAJE FIN DE CURSO(1)jpg”的示例)
如果我试图通过shell获取文件列表,并在引号内给出真实的文件名,那么我可以获取列表。但如果我尝试不提供任何文件名,列表将显示为?标记,而不是文件名中的重音字符。
你能给我一些解决这个文件找不到的问题的指导吗。我正在寻找一个解决方案,包括在PHP代码中或在服务器本身中更改某些内容?我拥有服务器的root访问权限。
我已经在网上遇到了一些类似的问题和答案,但这些问题和答案是指更改服务器上文件名的编码(比如使用conmv等实用程序)。但在我的情况下,我无法更改文件名或编码。这些文件是客户从本地系统上传的,因此我不能要求他们使用特定的命名约定或文件名编码。我希望通过一些PHP函数或apache配置实现这一点。
对此,我们非常感谢您的任何意见。
谢谢&当做
苏吉思