2014-06-05 34 views
0

我有文件列表,解码它们并解析一些字符串以保存到sqlite。如何从sqlite得到错误解码的字符串

问题是,其中一个文件是GBK编码,而其他文件是UTF-8编码。

FileReader以UTF-8读取这些文件,这使得从GBK文件解析的字符串被错误地解码,并且字符串是一些奇怪的字符,如???。

所有这些字符串都列在一个列表视图中,我如何正确显示它?我试过新的字符串(“UTF-8”),“GBK”)和新的字符串(myString.getBytes(“GBK”),“UTF-8”),但未能获得右字符串。

这是我用GBK编码再次读取文件的唯一方法吗?

回答

2

具体根据的FileReader的javadocs

这个类的构造函数假设默认的字符编码和默认字节缓冲区大小是适当的。要自己指定这些值,请在FileInputStream上构建一个InputStreamReader。

所以尽量

Reader reader = new InputStreamReader(inputStream,"UTF-8"); 
+0

这是真的,我可以specidied编码看了一遍,但我只是不知道是否有一种方法,我可以收回字符串,而无需指定编码。我发现从sqlite获得的字符串有“U + FFFD REPLACEMENT CHARACTER”这样的字符串。 – markzhai