2013-02-11 73 views
3

我有一个字段作为标题具有价值的文件 - Mörder(与o变音)。Solrj - 编码问题

当我使用下面的方法在java中获取它时,两个打印命令中返回的值都是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")); 
    } 

编辑

我实际上从2个内核比较文档标题。一个返回正确的变音符号,然而另一个总是将变音符号移动到下一个字符。

+0

您是否对solr容器有相同的配置?你正在使用哪个Web服务器?都配置为支持UTF-8? – Jayendra 2013-02-12 03:52:11

回答

0

Unicode分解正被Big/Little印度字节转换搞砸了吗?只是一个狂野(半开玩笑)的猜测。

实际上,没有答案,但我会把Wireshark,看看客户正在问什么和服务器正在回答。这将告诉你,如果问题是在离开服务器或到达客户端。

我不知道您的客户端配置,但如果流量以二进制形式出现,则会有一些客户端选项将其切换为XML。如果这本身使问题消失,那么问题就是javabin格式。如果没有,至少你有确切的查询和响应工作。

+0

我实际上是比较来自2个核心的文档标题。一个返回正确的变音,但另一个不会。 – JHS 2013-02-11 23:08:10