保存并检索重音字符到mysql数据库

时间:2014-12-16 20:14:50

标签: android database utf-8 android-sqlite

我在保存带有重音符的字符串并检索它时遇到了一些麻烦。

这是我的功能,可以将新位置保存到数据库中。它得到'myId'和'location'并插入它们。那里的println显示了我期望的项目,带有重音。我正在使用的例子是Mazzarrà。

public long createLocationRecord(String location, int myId) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put(KEY_OWMID, myId);
    values.put(KEY_NAME, location);
    System.out.println("newItem in DB = "+location);

    long callSQL = db.insertWithOnConflict(TABLE_LOCATION, null, values, SQLiteDatabase.CONFLICT_IGNORE);
    if(callSQL==-1)
        db.update(TABLE_LOCATION, values, KEY_OWMID + '=' + owmId, null);
    return callSQL;
}

这是我检索所有位置项的功能。这里的println打印出Mezzarra,没有重音à。我错过了什么吗?我是否需要对数据库进行更改?这只是我通过SQLiteBrowser打开的常规Android SQLite数据库。

public ArrayList<String> getLocationList() {
    ArrayList<String> list = new ArrayList<String>();
    SQLiteDatabase db = this.getWritableDatabase();

    String selectQuery = "SELECT * "
            + "FROM " + TABLE_LOCATION
            + " ORDER BY _id ASC";

    Cursor c = db.rawQuery(selectQuery, null);

    if (c != null)
        c.moveToFirst();

    if (c.moveToFirst()) {
        do {
            System.out.println("newItem GETTING FROM DB = "+c.getString(c.getColumnIndex(KEY_NAME)));
            list.add(c.getString(c.getColumnIndex(KEY_NAME)));
        } while (c.moveToNext());
    }
    c.close();
    return list;
}

感谢任何人提供的任何帮助。

0 个答案:

没有答案