iPhone - Получить значения неанглийских символов из sqlite - PullRequest
0 голосов
/ 18 апреля 2011

Я только что присоединился к проекту iPhone с базой данных sqlite3.Существует пользовательская структура локализации, в которой значения хранятся в строках следующим образом:

Id, страна, язык, ключ, значение

1469, FR, FR, KBUTTONS_AssessMyDamage, Évaluerle dommage

Код, который мы используем для получения результата:

NSString* item = @"";   

    sqlite3_stmt *statement;
        if (sqlite3_prepare_v2(database, [[NSString stringWithFormat:@"SELECT Value FROM LocalisedValues WHERE Country='%s' AND Language='%s' AND Key='%s'", country, language, key] UTF8String], -1, &statement, nil) == SQLITE_OK) {
            while (sqlite3_step(statement) == SQLITE_ROW) {

                item = [NSString stringWithUTF8String: (char *)sqlite3_column_text(statement, 0)];

            }
        }

Проблема, с которой мы сталкиваемся, заключается в том, что любой результат, в котором столбец значений содержит ударение, Éнапример, возвращает ноль.Удаление акцентированного символа возвращает правильное значение.

Кажется, что сама база данных была создана как UTF8 (попытка получить значения с помощью метода UTF16 возвращает один символ).

Есть ли у кого-нибудь какие-либо идеи о том, чтоможет быть не так с этим?

...