gpt4 book ai didi

servlets - 使用 HttpServletResponse 创建 UTF-8 文件

转载 作者:行者123 更新时间:2023-12-01 20:16:52 25 4
gpt4 key购买 nike

我正在尝试使用 HttpServletResponse (HttpServlet) 创建一个 UTF-8 文件“myFile.aaa”。我需要将其设置为 UTF-8 的原因是因为它可能包含特殊的不可打印字符。

但是,下面的代码似乎创建了 ANSI 编码的文件。至少 Notepad++ 是这么说的,我可以看到从这个文件中读取字符。我做错了什么?

谢谢

public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
res.setHeader("Content-Type", "application/octet-stream; charset=UTF-8");
res.setHeader("Content-Disposition","attachment;filename=myFile.aaa");
res.setCharacterEncoding("UTF-8");
ServletOutputStream os = res.getOutputStream();
os.print("Hello World");
os.flush();
os.close();
}

最佳答案

您需要使用响应的字符编写器,而不是字节输出流。

替换

ServletOutputStream os = res.getOutputStream();
os.print("Hello World");
os.flush();
os.close();

res.getWriter().write("Some UTF-8");

此外,我建议将内容类型设置为 text/plain,而不是过于通用的类型,因为这意味着二进制内容,而不是字符内容。

我不确定Notepad++,但是在Notepad中,如果文本文档不包含任何超出ANSI范围的字符,它将被解释为ANSI。不要用这种行为误导您。

关于servlets - 使用 HttpServletResponse 创建 UTF-8 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9354326/

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