Неправильная кодировка при выборке данных из SQLite - C#
Формулировка задачи:
Здравствуйте, надеюсь на вашу помощь в следующей пробелме
У меня программа, назовем ее главное приложение, работает с базой данных sqlite3.
Написана на C#
Когда ввожу русский текст внутри нее, в textfield например, и затем сохраняю его в БД (в некой таблице), то при следующем считывании из БД текст отображается правильно в главном приложении.
Но в БД есть таблица, содержимое которой записано с помощью другой программы на C#. (Вспомогательная программа) Эта программа считывала файл в кодировке windows-1251 и содержимое записывала в отдельную таблицу в БД.
Теперь когда в главном приложении я считываю из БД эти данные они отображаются не корректно, никак не могу добиться их корректного отображения.
В главном приложении данные считываются следующим образом:
В принципе я получаю то, что я записал с помощью вспомогательной программы
Вот код как вспомогательная программа записывает данные в БД:
В чем проблема, что я не так делаю?
Спасибо
string sql = "SELECT * FROM table_name;"; SQLiteDataReader rdr = executeSQL(sql, true); string text = getString(rdr, 0); ...
string lines = File.ReadAllBytes(path);
while (true)
{
string line = getLine(lines); // взять следующую строку из потока байтов (конец строки у меня 13 10)
if (line == null)
break;
string sql = "INSERT INTO table_name VALUES (";
sql += "\'" + some_value_text + "\'";
sql += ");";
executeSQL(sql);
connection.Close();
...
}[/CODE]
Подключение к БД происзодит в обоих программах одинаково:
[CODE]executeSQL(string sql) {
...
encoding = "windows-1251";
connection.ConnectionString = "";
connection.ConnectionString = "encoding=" + encoding + ";";
connection.ConnectionString += "URI=file:" + GetDBPath();
connection.Open();
SQLiteCommand cmd = new SQLiteCommand(connection);
cmd.CommandText = sql;
...
}Решение задачи: «Неправильная кодировка при выборке данных из SQLite»
textual
Листинг программы
StreamReader sr = new StreamReader(path, Encoding.GetEncoding(1251));