linux - Linux Web 服务器字符编码不匹配的下载链接

标签 linux web character-encoding

我有一个运行 Ubuntu 的网络服务器,我在网页上有一些链接指向服务器上的可下载文件。问题是由于字符编码,我遇到了 404(未找到)。

网站上的下载链接包含:Luís 但当我执行 ls 时,服务器上的文件名显示为 Lu�s .

没有这种字符的文件链接不会显示任何问题,但如果我有“特殊”字符,则会发生 404。

关于如何解决这个问题的任何想法?

更新:当我运行 locale 时,我得到:

LANG=en_US.UTF-8
LANGUAGE=en_US:en
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=

这不对吗?我的意思是它使用的是 utf8,对吗?

最佳答案

您在网络服务器上使用哪个语言环境?如果您的服务器区域设置和 HTML 编码页面相同,那就太好了。

我的意思是,您应该使用 UTF-8 作为服务器语言环境,并使用 UTF-8 作为您网页上的代码页。

如果您在 UTF-8 代码页中有 HTML 链接,但您的服务器有 locale latin-1,例如,您将遇到类似的问题。

因此,您需要检查服务器的区域设置,ls 应该会向您显示与您在 HTML 链接中使用的文件名完全相同的文件名。

已更新

如何在 Linux 上检查语言环境:只需执行 locale

如何检查 Apache 的默认编码页面(如果您使用 Apache 作为 Web 服务器)- 转到 httpd.conf 并检查如下内容:AddDefaultCharset utf-8

关于linux - Linux Web 服务器字符编码不匹配的下载链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13950764/

相关文章:

java - mysql 5.0无法存储utf8

mysql - Unicode 编码 - 错误 1366 : Incorrect string value: '\xF0' for column

mysql - character_set_connection 的目的是什么?

java - 识别汇编代码中的变量

c# - 在 C# Web 应用程序项目中推送通知

web-applications - RIA 和 SPA 有什么区别?

django - Web 框架与 Web 服务器?

linux - 跟踪链接库

c - 通过 cron 运行我的程序会导致权限失败

c++ - Linux/c++ 定时方法保证每 N 秒执行一次,尽管有漂移?