java中couchdB的InputStream字符集问题

java中couchdB的InputStream字符集问题,java,json,character-encoding,couchdb,ektorp,Java,Json,Character Encoding,Couchdb,Ektorp,我正试图解析一个Web服务,该服务将JSON数据作为响应。我用ektorp将JSON数据存储在couchdb中。因此,我有一个包含JSON数据的字符串,例如: String t = "{\"id\":2834361855,\"name\":\"Деменковa Елена\"}"; 然后我将字符串转换为InputStream以存储JSON,如下所示: InputStream jsonInputStream = new ByteArrayInputStream(t.getBytes(

我正试图解析一个Web服务,该服务将JSON数据作为响应。我用ektorp将JSON数据存储在couchdb中。因此,我有一个包含JSON数据的字符串,例如:

String t = "{\"id\":2834361855,\"name\":\"Деменковa Елена\"}";
然后我将字符串转换为InputStream以存储JSON,如下所示:

InputStream jsonInputStream = 
    new ByteArrayInputStream(t.getBytes(Charset.forName("UTF-8")));

db.update(String.valueOf(id),
               jsonInputStream,
               t.length(),
               null);
但它引发了一个例外:

400:请求错误 URI:/databs/101 答复机构: { 错误:请求错误, 原因:无效 }

我很确定这是一个字符集问题,因为如果我更改字符串,使其不再包含任何俄语字符,如:

String t = "{\"id\":2834361855,\"name\":\"toto\"}";

那么它就可以正常工作了。我不知道我做错了什么,我尝试了很多事情却没有任何运气。非常感谢您的帮助,我真的被卡住了。

您能够嗅探到实际发送到CouchDB的数据吗?例如,使用or?谢谢您的回复。我改变了策略,将数据存储为对象,而不是使用inputstream。这并不完美,但它符合我的目的