4

我有一个文档,其标题为具有价值的字段-Mörder(o 上有变音符号)。

当我使用以下方法在 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 个核心的文档标题。一个返回正确的变音符号,但另一个总是将变音符号移动到下一个字符。

4

1 回答 1

1

Unicode 分解被大/小印度字节转换搞砸了?只是一个疯狂的(半开玩笑的)猜测。

实际上,没有答案,但我会放Wireshark看看客户端在问什么,服务器在回答什么。这将告诉您问题是在离开服务器还是到达客户端时出现。

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

于 2013-02-11T18:20:39.683 回答