如何设置httpExchange响应的编码?

时间:2015-06-05 20:47:36

标签: java encoding

我试图修改一些使用httpExchange对象的服务器代码来处理服务器对客户端的响应。

我的问题是,对于包含iso-8859-1不支持的字符的回复,例如中文字符,我会得到像' ????'代替人物。我想将响应的编码设置为utf-8,但到目前为止还没有成功。

我尝试添加此行:

httpExchange.getResponseHeaders().put("charset", Arrays.asList("UTF-8"));

这成功地将#34; charset"响应中的标题,但我仍然无法在响应中发送我想要的字符。

如何设置响应的编码以允许这些字符?

1 个答案:

答案 0 :(得分:7)

使用Content-Type标头指定编码。

String encoding = "UTF-8";

httpExchange.getResponseHeaders().set("Content-Type", "text/html; charset=" + encoding);

Writer out = new OutputStreamWriter(httpExchange.getResponseBody(), encoding));
out.write(something);