无法将unicode字符发布到ElasticSearch,它们显示为问号

时间:2018-06-21 18:37:21

标签: java elasticsearch post unicode

我正在将电子邮件存储到ElasticSearch,但是只要它们的字符不是来自iso拉丁语的字符,例如“コニカミノルタ”,它们就会变为?在ES中:

          "content": """

???????
?? ?

?????????????????

我正在使用以下代码发布到ES:

HttpPost post = new HttpPost(url);
try {
    // set import date
    doc.setImportTimestamp(new Date());
    // convert item to json string
    post.setEntity(new StringEntity(JsonUtils.toJson(doc)));

    // index
    post.setHeader("Content-Type", "application/json; charset=UTF-8");
    // perform http post
    LOG.info("Index doc to " + url);
    LOG.info("JSON : [" + JsonUtils.toJson(doc) + "]");
    try (CloseableHttpResponse res = httpClient.execute(post)) {
        LOG.debug(IOUtils.toString(res.getEntity().getContent(), StandardCharsets.UTF_8));
    }

这是发布前JSON对象中的字符串:

> "content": "コニカミノルタ\r\n宮脇 様\r\n\r\nいつも大変お世話になっております。\r\n\r\n今回表示されたエラーを教えていただけますでしょうか。\r\nスクリーンショットをお送りいただけますと情報として問題解決にとても\r\n助かります。\r\n\r\n検証会議につきまして、明日でも宜しければ参加をさせていただきます。\r\nお手数ですが、それまでに先ほどお送りしました証明書の追加作業が\r\n御社IT部門の方にて適用されていることをご確認いただけましたら幸甚です。\r\n\r\nご連絡をお待ちしております。\r\n\r\nどうぞよろしくお願い致します。\r\n\r\n山本
     

美奈子\ r \ n山本美奈子\ r \ n网络支持亚太地区\ r \ n统一通信   服务\ r \ nAU +612 8295 9015/1800 766 770 \ r \ nHK 800964180 \ r \ nIN   1800 3010 3990 \ r \ nJP 0120300532 \ r \ nKR 0808080501 \ r \ nSG 800616 \ r \ ne   WebSupport-APAC@west.com   \ r \ nwestuc.com \ r \ n \ r \ n \ r \ n \ r \ n ---------------------------- -------------------------------------------------- -------- \ r \ n“,

欢迎任何帮助。

谢谢

劳尔

0 个答案:

没有答案
相关问题