如何设置httpExchange响应的编码?

cke*_*sch 6 java encoding

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

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

我尝试添加这一行:

httpExchange.getResponseHeaders().put("charset", Arrays.asList("UTF-8"));
Run Code Online (Sandbox Code Playgroud)

这成功地在响应中放置了"charset"标题,但我仍然无法在响应中发送我想要的字符.

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

sak*_*029 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);
Run Code Online (Sandbox Code Playgroud)