- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 Android 中创建一个数据库,一切都很顺利,但是当我测试检索正确数据的查询时,我遇到了错误。
E/AndroidRuntime(14126): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
我知道这意味着没有匹配查询的数据,但事实是我通过查询插入数据并且它实际上有匹配项。同样的查询适用于所有没有重音符号的代码。
这些是插入行的查询。
INSERT INTO "codigo" VALUES('A','PEATÓN');
INSERT INTO "codigo" VALUES('B','PEATÓN');
INSERT INTO "codigo" VALUES('C','PEATÓN');
所以我做了一个查询来获取我要替换的字段的值,如下所示:
String selectCode = "select distinct c.tipo from codigo c";
Cursor cursor = database.rawQuery(selectCodigo, new String[] {});
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
String codigo= cursor.getString(0);
codigos.add(codigo);
System.out.println(codigo);
cursor.moveToNext();
}
cursor.close();
return codigos;
结果是这样的:
10-14 16:40:32.140: I/System.out(13716): PEAT�N
我在/raw 文件夹中有文本文件,我从 Eclipse 进行了编辑,因此我确保它不是我所做的表导出,但我得到了相同的结果。
这是读取文件的代码:
public int insertFromFile(SQLiteDatabase db,Context context, int resourceId) throws IOException {
// Reseting Counter
int result = 0;
// Open the resource
InputStream insertsStream = context.getResources().openRawResource(resourceId);
BufferedReader insertReader = new BufferedReader(new InputStreamReader(insertsStream));
// Iterate through lines (assuming each insert has its own line and theres no other stuff)
while (insertReader.ready()) {
String insertStmt = insertReader.readLine();
db.execSQL(insertStmt);
result++;
}
insertReader.close();
// returning number of inserted rows
return result;
}
我怎样才能让这种口音起作用?我用了很多,所以,替换这个词不是出路。请帮忙,这是我完成这个项目唯一需要做的事情。
更新:后来又遇到了两次同样的问题。首先,我通过使用 cp1525 中编码的 .sql 文件修复了它,并使用默认编辑器在 Eclipse 中打开它并查找/替换了错误的字符。
上次我遇到这个错误时我用了正确的方法,发现如果你使用 SQLiteManager,它会导入以 UTF-8 编码的文件,但它会以 ANSI 格式导出文件,所以我用 Notepad++ 打开文件,将 .sql 文件的编码从 ANSI 更改为 UTF-8,它工作正常,所有字符都显示正常。
最佳答案
InputStreamReader constructor documentation说:
Constructs a new
InputStreamReader
on theInputStream
in
. This constructor sets the character converter to the encoding specified in the "file.encoding" property and falls back to ISO 8859_1 (ISO-Latin-1) if the property doesn't exist.
如果文件是用 UTF-8 编码的,你必须告诉读者这一点。
关于android - 如何将口音插入到 android 中的 sqlite 表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19369996/
我是一名优秀的程序员,十分优秀!