java中couchdB的InputStream字符集问题
我正试图解析一个Web服务,该服务将JSON数据作为响应。我用ektorp将JSON数据存储在couchdb中。因此,我有一个包含JSON数据的字符串,例如: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(
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。这并不完美,但它符合我的目的