关键是,您需要设置响应编写器的编码。只有一个响应标头,您基本上只是指示客户端应用程序使用哪种编码来解释/显示页面。如果响应本身是用不同的编码编写的,这将不起作用。
您遇到此问题的上下文完全不清楚(请在未来的此类问题中详细说明),因此这里有几个解决方案:
如果是 JSP,则需要在 JSP 顶部设置以下内容来设置响应编码:
<%@ page pageEncoding="WIN-1255" %>
如果是 Servlet,则需要在任何第一次刷新之前设置以下内容来设置响应编码:
response.setCharacterEncoding("WIN-1255");
顺便说一句,两者都自动隐式设置Content-Type
带有charset
参数的响应标头,以指示客户端使用相同的编码来解释/显示页面。另请参阅本文了解更多信息。
如果它是依赖于基本java.net
和/或java.io
API 的本土应用程序,那么您需要通过使用构造函数构造的字符来编写字符,OutputStreamWriter
该构造函数采用 2 个参数,您可以在其中指定编码:
Writer writer = new OutputStreamWriter(someOutputStream, "WIN-1255");