在 Apache Web 服务器中读取带有特殊字符的图像

Posted

技术标签:

【中文标题】在 Apache Web 服务器中读取带有特殊字符的图像【英文标题】:Reading images with special characters in Apache web server 【发布时间】:2021-08-08 01:08:18 【问题描述】:

当我尝试获取文件名中包含 ấ 等特殊字符的图像时,我无法读取前端的文件。导航到 url 时也总是会抛出 404 错误。

我的服务器操作系统是 CentOS,我的网站在 Apache 上使用 Nodejs 运行。我想知道是否必须以某种方式更改文件编码才能读取带有特殊字符的图像。所有普通图像都可以正常工作,只是似乎根本无法识别带有特殊字符的图像。

有很多文件,不幸的是,重命名它们不是我的选择。如果有人知道我必须做什么才能将文件转换为正确的编码,请告诉我。

更新:我发现了一种查找文件的方法,但我不了解编码模式。例如一个名为 kt-giấy-2.jpg 的文件可以使用 kt-gia%CC%82%CC%81y-2.jpg 直接查看,有人知道这是什么编码吗?它不符合 URI 编码器。

【问题讨论】:

【参考方案1】:

对于遇到此问题的任何人。我的问题是我通过 Cpanel 直接通过 zip 文件将文件从 Mac Osx 传输到 Centos。文件很好,但您需要使用 convmv 来更改文件。这些文件是可读的,但它们的编码不准确。

Mac OSX 在 NFC 中编码,其他所有操作系统都在 NFD 中编码

在您想要以不同方式编码的文件的目录中使用此命令。

convmv -r -f utf8 -t utf8 --nfc --notes .

【讨论】:

以上是关于在 Apache Web 服务器中读取带有特殊字符的图像的主要内容,如果未能解决你的问题,请参考以下文章

如何在python中读取带有特殊字符的文本文件

读取带有特殊字符的字符串并在`tr`和`sed`中使用它[关闭]

使用 std::wifstream 读取带有特殊字符的 unicode 文件

如何从文件中读取特殊字符?

带有特殊字符的 Azure 连接字符串

Hibernate 和 Spring Data JPA 无法处理带有特殊字符的 Oracle 表名?