问题描述:
Android开发中经常会遇到从txt、csv等文件中将数据加载到SQLite数据库中,而时常这些文件中都包含中文字符,如果不对编码作明确指定,则会采用默认的编码方式,此时便可能导致插入到数据库中包含中文的字段变成乱码,影响后续操作。
解决方法:
需要在读取文件时指定编码,如果包含中文,则需要指定为GB2312编码方式,如下所示:
try {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("path"),"GB2312"));
String readline = "";
while ((readline = br.readLine()) != null) {
/*your code*/
Log.e("line", readline);
}
br.close();
} catch (Exception e) {
Log.e("load file ==>", "file not found");
}
当指定为“GB2312”编码后,读取到的包含中文的字符串就正常了,插入数据库就不会出现乱码。