Я использую cURL для извлечения выбранных данных из веб-страниц, до недавнего времени я записывал вывод в текстовые файлы, но теперь, когда я лучше понимаю MySQL / SQLite, я решил сделать полную переключиться на реляционные базы данных, просто делает управление данными намного проще.
Но я столкнулся с парой проблем, которые мне не удалось решить самостоятельно:
1) РЕДАКТИРОВАТЬ: проблема решена путем простого использования sqlite_escape_string.
Однако осталась другая проблема:
2) Кажется, что содержимое, вставленное в базу данных, имеет неправильную кодировку, например «Становится», «становится» и так далее. Это происходит ТОЛЬКО во время обработки SQLite, если я в противном случае выводю те же самые данные или сохраняю их в текстовый файл, кодировка (UTF-8) сохраняется и все отображается правильно.
Я пытался использовать utf8_encode (); до вставки, но это только портит вещи еще больше. Я должен отметить, что ручное редактирование после вставки работает, поэтому проблема явно не в самой БД, а в том, как в нее вставляются данные
Вот текущий код:
$name = sqlite_escape_string($name);
$category = sqlite_escape_string($category);
$html = sqlite_escape_string($html);
$db = new SQLiteDatabase('DB.sqlite');
$query = 'INSERT INTO Table (Name, Category, Html)' . "VALUES ('$name', '$category', '$html')";
$db->queryExec($query);
Очевидно, у других возникают похожие проблемы с этим:
Ссылка
Ссылка