我有一个运行 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/