powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / SQLite [игнор отключен] [закрыт для гостей] / проблема с кодировкой
6 сообщений из 6, страница 1 из 1
проблема с кодировкой
    #37242676
EthanHunt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выполняю запрос "INSERT INTO Persons(id, name) VALUES (1, 'Иванов')". Все работает нормально, но потом когда выполняю "SELECT * FROM Persons" получаю "1, ??????" Как поменять кодировку бд?

БД создавал в C# WPF приложении.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
local_db = "persons.db";
FileInfo fi = new FileInfo(local_db);
fi.Create();

SQLiteConnection sql_con = new SQLiteConnection(String.Format("Data Source={0}", local_db));
sql_con.Open();
            
string query = "CREATE TABLE Persons(id INT, name VARCHAR(100))"
SQLiteCommand sql_cmd = new SQLiteCommand(query, sql_con);
sql_cmd.ExecuteNonQuery();

И еще вопрос. Пробовал "CREATE TABLE IF NOT EXISTS Persons(id INT, name VARCHAR(100))" - ругается что неверный синтаксис у 'NOT'. В чем проблема?

Заранее благодарю.
...
Рейтинг: 0 / 0
проблема с кодировкой
    #37242759
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EthanHuntВыполняю запрос "INSERT INTO Persons(id, name) VALUES (1, 'Иванов')". Все работает нормально, но потом когда выполняю "SELECT * FROM Persons" получаю "1, ??????" Как поменять кодировку бд? Никак. Кодировка БД к этому не имеет никакого отношения. Чини своего клиента - ту программу которая отправляет текст в БД и отображает текст полученный из БД.

EthanHuntИ еще вопрос. Пробовал "CREATE TABLE IF NOT EXISTS Persons(id INT, name VARCHAR(100))" - ругается что неверный синтаксис у 'NOT'. В чем проблема?Скорее всего в старом движке. Этот синтаксис появился только в 3.3.0
...
Рейтинг: 0 / 0
проблема с кодировкой
    #37242887
EthanHunt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посмотрел внутри файла с бд - там тоже знаки вопроса.
Видимо дело в кодировке самого файла. Создаю его сам. Но при создании бд в файле кодировка преобразуется в ANSI. Можно ли как то задать нужную кодировку при создании бд.
...
Рейтинг: 0 / 0
проблема с кодировкой
    #37242919
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EthanHuntПосмотрел внутри файла с бд - там тоже знаки вопроса.
Видимо дело в кодировке самого файла. Создаю его сам. Но при создании бд в файле кодировка преобразуется в ANSI. Можно ли как то задать нужную кодировку при создании бд.В принципе, можно. Но тебе это не поможет. Кодировка в базе отвечает за сортировку строк. А не за то какие буквы идут в базу или вытаскиваются из нее.

Еще раз повторяю: чини своего клиента. Того самого в котором ты делаешь "INSERT INTO Persons(id, name) VALUES (1, 'Иванов')". Именно эта программа превращает экранные буковки в вопросики.
...
Рейтинг: 0 / 0
проблема с кодировкой
    #37242966
EthanHunt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что там можно чинить? Самое простое подключение и выполнение запроса.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SQLiteConnection sql_con = new SQLiteConnection(String.Format("Data Source={0}", local_db));
sql_con.Open();

string query = "INSERT INTO Persons(id, name) VALUES (1, 'Иванов')";

SQLiteCommand sql_cmd = new SQLiteCommand(query, sql_con);
sql_cmd.ExecuteNonQuery();

sql_con.Close();
...
Рейтинг: 0 / 0
проблема с кодировкой
    #37244213
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EthanHuntА что там можно чинить? Самое простое подключение и выполнение запроса.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SQLiteConnection sql_con = new SQLiteConnection(String.Format("Data Source={0}", local_db));
sql_con.Open();

string query = "INSERT INTO Persons(id, name) VALUES (1, 'Иванов')";

SQLiteCommand sql_cmd = new SQLiteCommand(query, sql_con);
sql_cmd.ExecuteNonQuery();

sql_con.Close();
Коневертируй строку в utf8 перед отправкой в базу.
что-то в духе:
Код: plaintext
string query = "INSERT INTO Persons(id, name) VALUES (1, '" + cp1251_to_utf8("Иванов") + "')";
И вообще, не забывай что писать кириллицу в коде программы это напрашиваться на неприятности. Компилятор тоже может "не понять" твои не-ANSI буковки и превратить их в вопросики от греха подальше. Открой свой исходник в любом низкоуровневом редакторе и посмотри в какой кодировке у тебя константа "Иванов" задана. Соответсвенно и функцию конвертации настраивай.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / проблема с кодировкой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]