fb默认采用none字符集建库,这其实不是任何字符集,它对字符串当二进制流(数组)处理。由于字符编码原因,有时我们想查找 “%王%” 也许结果中出现一些并没有 王 的数据(排序也是一样道理,也许数据次序有些怪异)。另外,在字符存储时,数据库也不对字符串进行任何校验(我们知道,字符集的校验是一种正确性检查),这回导致存入的字符串可以包括任何编码(似乎满足灵活性需要),但问题是你取出字符串时却没法知道它的字符集而导致可能不正确还原出现乱码。
采用字符流取值就好了:
BufferedReader br = new BufferedReader(new InputStreamReader(re.getBinaryStream("XM"),"utf-8"));
String line = null;
StringBuilder sb = new StringBuilder();
while((line = br.readLine())!=null)
{
sb.append(line);
}
System.out.println(sb.toString());