简单地说,如果文件名中包含特殊字符,我无法下载托pipe在我的Web服务器中的文件,因为我得到了404。
如果我创build一个名为olá.txt的文件,我似乎没有find正确的URL来下载它。 我试过所有可能的方式来下载它:
mydomain.com/olá.txt mydomain.com/ol%C3%A1.txt
而且我总是从Apache Tomcat 7.0.3获得一个404,但是如果我将文件名更改为ola.txt,那么一切都很好。
我已经添加了AddDefaultCharset utf-8到httpd.conf,但是我仍然有这个问题。
在使用IDLE编辑Python代码时如何处理非ASCII警告?
来自二进制文件的asciistring的“grep”偏移量
用于创build“漂亮”目录树的ASCII库?
在使用ftp命令从linux上传文件后,使用ASCIItypes来破坏映像文件
batch file中的国际字符
我的意思是应该可以下载名称包含非ASCII字符的文件,对吧?
更新:我的server.xml有:
<Connector URIEncoding="UTF-8" compressableMimeType="text/javascript,text/css" compression="on" compressionMinSize="2048" connectionTimeout="20000" noCompressionUserAgents="gozilla,travista" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
更新:
echo -n olá | od -An -tx1 = 6f 6c c3 a1 echo $LANG = en_US.UTF-8
区域:
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_TELEPHn_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=
如何在Bash命令行中生成ASCII码2和3?
重音字符崩溃独立的PHP解释器
将非标准字符写入Linux命令行
如何使用FOR循环分配超过26个variables?
您可能需要将其添加到Tomcat的server.xml中的<connector ... />标记:
URIEncoding="UTF-8"
更多信息:
如何获得UTF-8在Java webapps中的工作?
utf-8的url问题
我有蜜蜂难以再现这一点。 我已经在Ubuntu 12.04.4 LTS上完成了Tomcat 7.0.26的全新安装,创建了/var/lib/tomcat7/webapps/ROOT/testé.txt ,并成功地将该文件传送到我的浏览器的url http://localhost:8080/testé.txt 。
这是我在/etc/tomcat7/server.xml连接器标签:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" />
我不能说为什么你的这个时候不工作,但是我至少可以确认使用tomcat7来编码UTF-8编码的文件是可能的。
这个问题可能与Tomcat或URL编码无关,它实际上可能是FTP连接编码 (或者用于将文件发送到远程主机的任何问题)的问题。
如果他们不同,你会发送一个你认为是“testé”的文件,并从同一个源头回来,当然会返回“testé”。 但是在文件系统上,文件可能会被编码不同( 即使 LANG被正确设置)。
尝试从Tomcat创建文件并以UTF8和网址编码的形式请求它。 如果它工作,然后尝试查看您的FTP客户端的文件名。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。