我正在编写一个 REST API。我从数据库中获取数据并将其存储在字符串中。然后我将它发送回浏览器,如下所示:
//fetch data from database
String s = ...
// Prepare it for browser
byte[] data = s.getBytes("UTF-8");
// Send it to browser now
out.write(data); // out is an OutputStream received from Jersey through the MessageBodyWriter interface
数据来自一个 UTF8 编码的 postgresql 数据库。数据存储在一个字符变数(5000)中。
当浏览器 (Chrome) 显示字符串时,会出现此错误:
error on line 29 at column 285: Input is not proper UTF-8, indicate encoding !
Bytes: 0x19 0x4C 0x29 0x20
其他浏览器也会出现同样的问题。
以下是发送到浏览器的标头:
200
Content-Type: application/xhtml+xml;charset=UTF-8
总结 这里是数据流的总结
数据库(UTF8)>休眠>对象>getBytes(“UTF-8”)>浏览器
我错过了什么?