【发布时间】:2014-06-07 09:04:49
【问题描述】:
这就是我正在做的 -
- 从 mongodb 获取一个文档(JSON)
- 将此键值写为 XML
- 将此 XML 发送到 Apache Solr 以进行索引
这是我第 2 步的操作方式
给定键为“key1”,值为“value1”,步骤#2 输出为
"<"+ key1 + ">" + value1 + "</"+ key1 + ">"
现在,当我将此 XML 发送到 Solr 时,我收到了 Stax 异常,例如 -
- UTF-8 起始字节 0xb7 无效
- UTF-8 起始字节 0xa0 无效
- UTF-8 起始字节 0xb0 无效
- UTF-8 起始字节 0x96 无效
这就是我想解决的方法 -
key1New = new String(key1.getBytes("UTF-8"), "UTF-8");
value1New = new String(value1.getBytes("UTF-8"), "UTF-8");
应该这样做还是我应该这样做 -
key1New = new String(key1.getBytes("UTF-8"), "ISO-8859-1");
value1New = new String(value1.getBytes("UTF-8"), "ISO-8859-1");
【问题讨论】:
-
试试
new String(bytes, Charset.forName("UTF-8")) -
不要一开始就自己创建 XML - 使用 XML API。如果您已经将数据获取为文本,只需将其保留为文本即可。不要在不需要的时候开始乱搞二进制形式。