java - 下载文件时如何处理 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)
解决方案
推荐阅读
- c - 如何在 POSIX 共享内存中使用 struct?
- sql - 无法绑定多部分标识符“-”
- macos - 对 Apple Silicon 的 SSE/neon 支持
- r - 使用 R 脚本导出 Power BI 时出现问题
- ssl - curl:“证书密钥使用不足以尝试操作”
- environment-variables - How to make local environment same for Do File Editor as for Command/Results (to use tempfiles)
- azure - 您可以在 ARM 模板中执行嵌套复制循环吗?
- php - Mysql Percentage According to Group
- r - Invalid For-Loop using Sequence in R
- android - 如何将顺序协程块排入队列