在Centos 7和Apache 2.4中处理UTF-8文件名

我的图像名称包含重音字母(é,à等)不能通过Apache访问(404错误)。

我认为这与Apache无关。 我检查了configuration文件:

  AddDefaultCharset UTF-8 

当我通过Putty连接,并运行“ls -la”命令列出图像时,重音字母被replace为“?” 在控制台。

以下是可能有所帮助的相关信息:

 > echo $ LANG
是en_US.UTF-8
 > cat / etc / environment
空的文件
 > locale
 LANG =的en_US.UTF-8
 LC_CTYPE = “的en_US.UTF-8”
 LC_NUMERIC = “的en_US.UTF-8”
 LC_TIME = “的en_US.UTF-8”
 LC_COLLATE = “的en_US.UTF-8”
 LC_MONETARY = “的en_US.UTF-8”
 LC_MESSAGES = “的en_US.UTF-8”
 LC_PAPER = “的en_US.UTF-8”
 LC_NAME = “的en_US.UTF-8”
 LC_ADDRESS = “的en_US.UTF-8”
 LC_TELEPHONE = “的en_US.UTF-8”
 LC_MEASUREMENT = “的en_US.UTF-8”
 LC_IDENTIFICATION = “的en_US.UTF-8”
 LC_ALL =

我find了一些教程,但它们适用于Centos 5/6。

PS:重命名文件是一个可能的解决scheme,但在我的情况下是不可想象的。

第一@Simohammedhttc :你使用正确的名字! 请不要诉诸重命名文件。 这是2016年。我们拥有所有的技术,所以没有人会因为名字不是英文而阉割一些文件名。

区域设置看起来不错。 腻子有显示非ASCII字符的问题(即显示?)可能完全是腻子的问题。 这些天不用腻子,但我记得玩腻子设置,以确保正确。

我只是检查一下,我现在的CentOS 7会很高兴地通过Apache2提供这个变音符号的URL:

http://<server>/äöü.txt 

文本文件再次包含相同的元音变音。 浏览器(Safari)说编码是UTF-8。 把这个放在一些HTML中也是可行的:

  • <a href="äöü.txt">äöü.txt</a></td>
  • 当然这也是: <a href="%c3%a4%c3%b6%c3%bc.txt">äöü.txt</a>

请尝试通过将图像URL粘贴到浏览器的地址栏中直接访问图像。

如果这样做,请检查如何生成图像的链接。 看看源代码:

  • validation浏览器是否将所有内容都识别为UTF-8。
  • validation图像URL是否被任何中间处理弄乱。

最后我解决了这个问题
我安装了convmv,并在图像文件夹中执行了以下命令:

  // -r =>recursion
 // --notest =>不要告诉我潜在的结果,转换文件名
 // -f => from
 // -t =>到
 convmv -r --notest -f iso-8859-15 -t utf8 images_folder

此问题与在Windows环境中创build的文件相关,然后上载到Centos服务器。

我直接在Centos中创build了一个带有重音字母的文件,它在Putty中没有任何问题。

 cd images_folder
触摸étude.png
 ls -la // fileétude.png列出没有任何问题