gpt4 book ai didi

java - 不同服务器上的文件名错误

转载 作者:行者123 更新时间:2023-12-02 05:03:31 24 4
gpt4 key购买 nike

我有一个应用程序,允许用户下载一些文件。我在 VMware vFabric tc Server Developer Edition v2.9(STS 中的默认服务器)上运行它,一切正常。但现在我的服务器是GlassFish,所以文件名变得错误。例如 - 30-60 от 19.01.2015.txt

Firefox:30-60_(无扩展名)

Chrome:30-60_ _19.01.2015.txt

出了什么问题?代码:

response.setHeader(
"Content-disposition",
"attachment;filename="
+ BufferUtil.getEncoded(distributionService.get(id)
.getTitle(), request) + ".txt");
response.setContentType("text/xml, text/plain");

BufferUtil.getEncoded:

public static String getEncoded(String text, HttpServletRequest request) {
String userAgent = request.getHeader("user-agent");
boolean isInternetExplorer = (userAgent.indexOf("MSIE") > -1);
text=text.replace(' ', '_');

try {
byte[] fileNameBytes = text
.getBytes((isInternetExplorer) ? ("windows-1250")
: ("utf-8"));
String dispositionFileName = "";
for (byte b : fileNameBytes) {
dispositionFileName += (char) (b & 0xff);
}
return dispositionFileName;
} catch (UnsupportedEncodingException ence) {
ence.printStackTrace();
return null;
}
}

最佳答案

请尝试:

java.net.URLEncoder.encode(distributionService.get(id).getTitle() + ".txt", "UTF-8")

而不是

BufferUtil.getEncoded(distributionService.get(id)
.getTitle(), request) + ".txt");

关于java - 不同服务器上的文件名错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28021293/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com