Экспорт PHP û (вы с круговым) из MySQL utf8_general_ci: не работает

0

У меня есть таблица 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

  • 0
    Только незначительная Комментарий: трема это два-точка знака диакритического, а и с Trema является ü вместо û , который является у с циркумфлексом.
  • 0
    @Phylogenesis & deceze: я думаю, что дублирующий тег установлен слишком быстро и, кажется, делается только на основе заголовка. Например, этот вопрос даже не об Excel!
Показать ещё 10 комментариев
Теги:
character-encoding

1 ответ

0

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 использует другую кодировку и все равно будет показывать символы как "È-", например. При открытии с помощью текстового редактора мы видим ожидаемый символ "û".

Ещё вопросы

Сообщество Overcoder
Наверх
Меню