我了解到,一般来说,Java使用UTF-16作为内部字符串表示
我的问题是在Java中编写响应并应用不同的char编码时实际发生的情况,例如: response.setCharacterEncoding("ISO-8859-1")
。
它是否实际将响应的正文字节从 UTF-16 转换为 ISO-8859-1 ,或者只是将一些元数据添加到响应对象中?
答案 0 :(得分:0)
我假设你正在谈论一个按照HttpServletResponse
的方式工作的课程。如果是这种情况,那么是,如果您致电getWriter
,它会更改回复的正文。由它返回的编写器必须将写入其中的任何字符串转换为字节,并使用编码。
如果您已设置内容类型,则设置内容编码也通过Content-Type
标头提供该信息。根据{{3}}:
使用字符串
text/html
调用setContentType(java.lang.String)并使用字符串UTF-8
调用此方法与调用setContentType并使用字符串text/html; charset=UTF-8
等效。< / p>