PHP импорт CSV с UTF-8 акцентами - PullRequest
2 голосов
/ 11 июля 2011

У меня проблемы с импортом файла CSV, который содержит (французские) имена с акцентами в них ... при их импорте акцент не отображается должным образом, пример

Феликс превращается в Феликс

файл создается вручную и затем импортируется в PHP.

Я пробовал и utf8_encode (), и utf8_decode (), и функция nether преобразует символы, чтобы их можно было правильно просматривать.

мой вопрос, как я могу сделать так, чтобы это правильно отображалось ... конвертировать набор символов ... и т.д.

Я полагаю, что текст зашифрован в Cp850 на основе других вопросов, которые я видел здесь. Я использую fgetcvs () для получения содержимого.

Ответы [ 4 ]

2 голосов
/ 10 ноября 2012

Установить информацию заголовка перед выводом как UTF

header('Content-Type: text/html; charset=utf-8');
$log = file_get_contents("log.csv");
echo utf8_encode($log);

Выход

félix
1 голос
/ 11 июля 2011

Пожалуйста, попробуйте iconv () функция

0 голосов
/ 16 ноября 2016

Я делаю это при загрузке

if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_dir .$target_file)) {
      $log = file_get_contents($target_dir .$target_file);
      file_put_contents($target_dir .$target_file, utf8_encode($log));
0 голосов
/ 24 марта 2016

Я думаю, что это поздний ответ, но может быть полезным для тех, кто все еще ищет решениеЭто просто твик.Не всегда рекомендуется.

header('Content-Encoding: UTF-8');
header('Content-type: text/csv; charset=UTF-8');
header('Content-Disposition: attachment; filename=filename.csv');
echo "\xEF\xBB\xBF"; // UTF-8 with BOM
readfile("filename.csv");
exit;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...