首页 > 解决方案 > 下载文件时如何处理 URL 中的日文文件名。在 IE 和 FireFox 中面临的问题

问题描述

我在下载带有日文文件名的文件时遇到问题。我已经将字符编码设置为 UTF-8。它适用于本地 tomcat,但不适用于 Ec2 服务器。IE 和 firefox 在下载文件时出现问题。Chrome 浏览器工作正常。

        fileName = URLEncoder.encode(fileName,"UTF-8");
        modRewriteFileName = URLEncoder.encode(modRewriteFileName,"UTF-8");
        
        URL url = new URL(fileURL + modRewriteFileName);
        inputStream = url.openConnection().getInputStream();

从 IE 浏览器下载文件时出现此错误

java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
    org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:483)
    org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:502)
    org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1623)
    org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 

标签: javatomcaturlencode

解决方案


推荐阅读