gpt4 book ai didi

java - ResourceResponse.setCharacterEncoding() 不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 08:59:10 24 4
gpt4 key购买 nike

我需要在 portlet serveResource() 方法的响应中返回一些特殊的拉丁字母(例如 á)。我尝试过以下方法:

response.setCharacterEncoding("ISO-8859-1") ;
PrintWriter out = resWrapper.getWriter();
out.println("á");
out.close();

或者

response.setContentType("text/plain; charset=ISO-8859-1");
PrintWriter out = resWrapper.getWriter();
out.println("á");
out.close();

前端 XHR 调用(对serveResource url)无法从上述任一方法中获取正确的字符。但是,如果 XHR 将请求发送到 HttpServlet(具有与上面完全相同的响应代码),则它可以正常工作。

有人可以解释一下这里的问题吗?

最佳答案

浏览器是否有可能根据包含 portlet 的页面上指定的字符集而不是您想要的字符集来解释serveResource() 调用的响应?也许您得到了正确的字符,但是当浏览器呈现它时,它会忽略您在serveResource()方法中设置的内容,并使用与页面其余部分相同的字符集显示它。

这也许可以解释为什么它与 HttpServlet 一起工作得很好,HttpServlet 负责渲染整个页面,而不仅仅是其中的一部分。因此,在这种情况下,在响应上设置字符编码就可以解决问题。

关于java - ResourceResponse.setCharacterEncoding() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1302626/

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