У меня возникла проблема, когда я пытаюсь выполнить оператор sql, который я сохранил в файле. Проблема в том, что специальные символы, такие как æøå, становятся тарабарщинами, когда они импортируются в базу данных.Проблемы с кодированием при импорте инструкции sql из файла
Я использую код ниже:
$dsn = 'mysql:host='.DBHOST.';dbname='.DBBASE;
$db = new PDO($dsn, DBUSER, DBPASS);
//$db->exec("set names 'utf8'");
$sql = "TRUNCATE TABLE wtm_meta_language";
$db->exec($sql);
$sql = file_get_contents('language.sql');
$db->exec($sql);
Файл language.sql кодируется в UTF-8 и поэтому база данных. Я попытался заставить соединение с базой данных использовать utf-8, добавив «set names» utf8 »в мой код (строка 3, теперь это комментарий), но когда я добавляю эту строку, ничего не импортируется вообще.
Надеюсь, у кого-то есть идея, как решить эту проблему.
Это звучит как входной файл * не * UTF8. Можете ли вы описать, как вы установили, что файл на самом деле * является * UTF8? – RandomSeed
Я использую Netbeans в качестве редактора для моего проекта и заявил, что все файлы должны быть UTF8. Теперь я открыл файл в Notepad ++, и здесь он говорит, что кодировка «UTF-8 без спецификации» – Mads