Я хотел бы использовать стандарт UTF-8 для нескольких языковых строк в моем db, например, я хочу вставить некоторые строки на русском языке и получить их для последующего использования. На данный момент я получаю ??? знаки вместо русских символов в моем db. Есть ли способ заставить мой db работать с несколькими языковыми символами?Многоязыковые символы в SQLite Universal Windows 10
Я нашел некоторые сообщения о PRAGMA
, но я не могу получить его работу, что-то вроде:
await Database.ExecuteAsync("PRAGMA encoding='UTF-8'");
Я использую SQLite.Net-PCL, System.Data.SQLite и SQLite для универсальной платформы Windows в качестве ссылок.
Мой реальный код создания базы данных:
public static string SQL_DB_PATH = Path.Combine(ApplicationData.Current.LocalFolder.Path, "my_db");
public static void createDbMethod() {
using (var conn = new SQLiteConnection(new SQLitePlatformWinRT(), SQL_DB_PATH)) {
try {
// Start transaction
conn.BeginTransaction();
try {
// Execute table creation commands...
conn.CreateTable<MyTableOne>();
conn.CreateTable<MyTableTwo>();
conn.CreateTable<MyTableThree>();
//Commit transaction
conn.Commit();
} catch (Exception ex) {
//handle exception
// Rollback transaction
conn.Rollback();
}
} catch (Exception e) {
//handle exception
} finally {
conn.Close();
}
}
}
EDIT Моя вставка запроса:
public static void executeSqlQuery(string singSqlQuery) {
using (var conn = new SQLiteConnection(new SQLitePlatformWinRT(), SQL_DB_PATH)) {
// Open connection
try {
// Start transaction
conn.BeginTransaction();
try {
// Execute commands...
conn.Execute(singSqlQuery);
// Commit transaction
conn.Commit();
} catch (Exception ex) {
// Rollback transaction
conn.Rollback();
}
} catch (Exception e) {
//handle exception
} finally {
conn.Close();
}
}
}
где singSqlQuery
это обычный SQL запрос типа: INSERT OR REPLACE INTO my_tab (id,name) VALUES('1','some characters');
Какой набор символов для вашей базы данных и сортировка? – Rob
Я новичок в windows, я знаю, что в Android он работает автоматически, где я могу установить свой набор символов и 'collation' –
Я не знаком с SQLite, поэтому вы можете посмотреть здесь: http: // stackoverflow.com/questions/1188749/how-to-change-the-collation-of-sqlite3-database-to-sort-case-insensitively - обратите внимание, что если это * является * причиной, значит, ваши исходные данные были вставлены и был поврежден, так что это исправит вашу проблему только для вставок * после * изменения сортировки – Rob