[英]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.