gpt4 book ai didi

java - 输入不是正确的UTF-8,指示编码

转载 作者:行者123 更新时间:2023-12-01 23:39:03 25 4
gpt4 key购买 nike

我正在编写一个 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

在其他浏览器上也会出现同样的问题。

以下是发送到浏览器的 header :

200
Content-Type: application/xhtml+xml;charset=UTF-8

摘要这是数据流的摘要

数据库(UTF8) > Hibernate > 对象 > getBytes("UTF-8") > 浏览器

我错过了什么?

最佳答案

基于我对 0x19 字符的惊讶,我怀疑数据库中的数据是以 UTF-16 格式存储或传输的。

给出的字节在UTF-16大端或UTF-16小端中都没有给出一个很好的句子,所以我怀疑在JDBC连接器之前存在不正确的转换,这意味着你的String已经被不正确的污染了数据。

检查您的 JDBC 连接器、表编码以及数据库的任何其他数据连接器。

关于java - 输入不是正确的UTF-8,指示编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18235940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com