我正在使用Sqlcipher库加密Android中的数据库。当我创建或打开数据库时,一切都很好但是如果在我的脚本中加密数据库之前有一个特殊字符,加密就是“?”。
INSERT INTO [fr_preguntas_x_formularios] ([idPregunta], [idFormulario], [descripcion], [tipoCampo], [tipoCampoDetalle], [respuesta], [sw_obligatorio], [min_rango], [max_rango], [separador_numerico], [expresion_regular]) VALUES (4, 1, 'Niveles de azúcar en la sangre (ng)', 'numerico', ',,300&1000__#,###', null, '', null, null, null, null);
当我获得“描述”时,我会收到“Niveles de az?car en la sangre(ng)”
我该如何解决这个问题?
我正在用这段代码创建我的数据库
try {
File file = new File(Environment.getExternalStorageDirectory()
.getPath() + "/dbtest/" + DATABASE_NAME_SCRIPT);
InputStream stream = new FileInputStream(file);
InputStreamReader inputStreamReader = new InputStreamReader(stream);
BufferedReader bufferedReader = new BufferedReader(
inputStreamReader);
String line;
String strSentenciaSql = "";
int cont = 0;
while ((line = bufferedReader.readLine()) != null) {
if (!line.contains("--") && !line.isEmpty()) {
strSentenciaSql += line;
if (line.contains(";")) {
database.execSQL(strSentenciaSql);
strSentenciaSql = "";
System.out.println(cont);
cont++;
} else {
strSentenciaSql += " ";
}
}
}
bufferedReader.close();
inputStreamReader.close();
stream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
答案 0 :(得分:0)
问题不在库中,在代码中。我检查了这个答案:https://stackoverflow.com/a/9282017/3820750,问题是当BufferReader正在读取时。
BufferedReader bufRdr = new BufferedReader(
new InputStreamReader(new FileInputStream(file),"ISO-8859-1"));