0
私は、エンコードされた文字列をSolrに送信し、取得時にそれをデコードしようとしています。私のエンコードのようになります。Solrデータのエンコード/デコード
public static String compress(String inputString) {
try {
if (inputString == null || inputString.length() == 0) {
return null;
}
return new String(compress(inputString.getBytes("UTF-8")));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
}
private static byte[] compress(byte[] input) {
try {
ByteArrayOutputStream out = new ByteArrayOutputStream();
GZIPOutputStream gzip = new GZIPOutputStream(out);
gzip.write(input);
gzip.close();
return out.toByteArray();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
その後、私はSOLRに送る、と私は(それがここで失敗したので、今の復号を無視して)、それを取り戻すためにしようとすると
SolrDocument resultDoc = iter.next();
String content = (String) resultDoc.getFieldValue("source");
System.out.println(content);
私は、このような文字列を送信した場合"こんにちは私の名前はクリス"のようにエンコードされます(どのようなスタックのオーバーフローが変更されて無視)のようになります。しかし
ã�������ÛHÕ……W»≠T»KÃMU»,VpŒ( ,�ìùùG���
私は戻ってSOLRから取得することは、明らかに復号化が失敗になります
#31;ã#8;#0;#0;#0;#0;#0;#0;#0;ÛHÕ……W»≠T»KÃMU»,VpŒ( ,#6;#0;ìùùG#22;#0;#0;#0;
です。 JettyのインストールとTomcatの両方を同じ問題で使ってみました。