我有一个文档,其中一个字段作为标题,值为-Mörder(o上有一个元音变音符)。
当我使用以下方法在java中获取它时,两个print命令中返回的值都是Morder(r上有一个元音变音符)。奇怪的
当我转到Solr提供的Web UI时,标题是Mörder(o上有元音变音符)。
有人能告诉我出了什么问题吗?
SolrQuery query = new SolrQuery();
query.setParam("q", "<some query>");
query.setStart(start);
query.setRows(rows);
query.setFacet(false);
query.setFields("title");
QueryResponse rsp = server.query(query);
SolrDocumentList sdl = rsp.getResults();
for (SolrDocument sdOl : sdl) {
System.out.println(sdOl.getFieldValue("title"));
System.out.println(new String(sdOl.getFieldValue("title").toString().getBytes, "UTF-8"));
}
编辑
我实际上是在比较两个核心的文档标题。一个返回正确的元音变音符,但另一个总是将元音变音符移动到下一个字符。
Unicode分解被大/小印度字节转换搞砸了?只是一个疯狂的(半开玩笑的)猜测。
实际上,没有答案,但我会放上Wireshark,看看客户端在问什么,服务器在回答什么。这将告诉您问题是在离开服务器还是在到达客户端时。
我不知道你的客户端配置,但如果流量是二进制的,有一些客户端选项可以将其切换到XML。如果这本身就解决了问题,那么问题就出在javabin格式上。如果没有,至少您有确切的查询和响应可供使用。