У меня есть таблица mysql с символом, который хранится как "û" (u с огибающей). Я экспортирую это через php в csv. Я пробовал все, но просто не могу получить û в файле экспорта. Я вижу такие вещи, как "?" или "È" и "Ã" ".
Вопрос: как я могу правильно экспортировать данные из mysql в CSV файл с помощью PHP, поэтому я вижу "û" в БД как "û" в экспортированном файле?
Наш php-сверло
mb_internal_encoding("UTF-8");
$list = $readConnection->fetchAll($query);
$fp = fopen($file, 'w');
setlocale(LC_MONETARY, 'nl_NL');
# Loop over lines here
$line = utf8_encode($db_row);
fputcsv($fp, $line);
Я также попытался добавить BOM fprintf($fp, chr(0xEF).chr(0xBB).chr(0xBF));//set UTF 8 header, not working
fprintf($fp, chr(0xEF).chr(0xBB).chr(0xBF));//set UTF 8 header, not working
Anwer должен выполнить SET NAMES utf8
в БД перед запросом данных. Все остальные настройки в порядке. Функция utf8_encode
также больше не нужна.
Затем сверло становится
mb_internal_encoding("UTF-8");
$list = $readConnection->fetchAll($query);
$readConnection->query("SET NAMES utf8");
$fp = fopen($file, 'w');
setlocale(LC_MONETARY, 'nl_NL');
# Loop over lines here
$line = $db_row;
fputcsv($fp, $line);
Пожалуйста, будьте осторожны! при проверке этого на использование редактора TEXT. Excel использует другую кодировку и все равно будет показывать символы как "È-", например. При открытии с помощью текстового редактора мы видим ожидаемый символ "û".
ü
вместоû
, который является у с циркумфлексом.