我有文件列表,解码它们并解析一些字符串以保存到sqlite。
问题是其中一个文件是GBK编码,而其他文件是UTF-8。
FileReader以UTF-8读取这些文件,这使得从GBK文件解析的字符串被错误地解码,字符串是一些奇怪的字符,如???。
列表视图中列出了所有这些字符串,如何正确显示?
我尝试了新的String(myString.getBytes(“UTF-8”),“GBK”)和新的String(myString.getBytes(“GBK”),“UTF-8”),但未能获得正确的字符串。
这是我再次使用GBK编码读取文件的唯一方法吗?
答案 0 :(得分:2)
根据FileReader javadocs
此类的构造函数假定默认字符编码和默认字节缓冲区大小是合适的。要自己指定这些值,请在FileInputStream上构造一个InputStreamReader。
所以试试
Reader reader = new InputStreamReader(inputStream,"UTF-8");