繁体   English   中英

Windows 上的 URL 编码问题

[英]URL Encoding issues on Windows

            ObjectMetadata objectMetadata = new ObjectMetadata();
            String utf8PackageName = URLEncoder.encode(packageName, "UTF8").replace("+", "%20");
            LOGGER.debug("utf8PackageName : {}", utf8PackageName);
            objectMetadata.setContentDisposition("attachment; filename*=UTF-8''" + utf8PackageName);
            request.setMetadata(objectMetadata);

我正在尝试使用上面的代码来设置内容处置以请求将对象上传到 S3。 我面临的问题是 URLEncoder.encode() 在 windows 和 linux 机器上给出不同的值,它设置了不同的内容显示值。

我尝试使用在线解码器对 Windows 机器上生成的 utf8PackageName 进行解码,但它解码为不同的值。

例如(Java 8)

äöööüüüüüü => (Linux) : %C3%A4%C3%B6%C3%B6%C3%B6%C3%BC%C3%BC%C3%BC%C3%BC%C3%BC%C3%BC:解码工作美好的

äöööüüüüüü => (Windows) : %C3%83%C2%A4%C3%83%C2%B6%C3%83%C2%B6%C3%83%C2%B6%C3%83%C2%BC%C3% 83%C2%BC%C3%83%C2%BC%C3%83%C2%BC%C3%83%C2%BC%C3%83%C2%BC:解码无法正常工作

我观察到在 windows 的情况下,每个 %C3 都被 %C3%83%C2 替换

我究竟做错了什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM