Кодировка чисел при обработке файлов Excel

Статус
В этой теме нельзя размещать новые ответы.

Albert22

Старатель
Регистрация
30 Мар 2008
Сообщения
270
Реакции
11
Привет!

Есть Для просмотра ссылки Войди или Зарегистрируйся. Нужно сделать импорт данных из .xls файлов в MySQL.

Сделал тестовый скрипт. На одном бесплатном хостинге все работает нормально:
attachment.php
а на выделенном сервере получается следующее:
Как это исправить? Подскажите, пожалуйста.​
 

Вложения

  • ok.png
    ok.png
    2,5 KB · Просмотры: 38
  • fail.png
    fail.png
    7,7 KB · Просмотры: 37
походу где то на сервере, происходит смена кодировки.
Такая же проблема порой с Денвером. У тебя есть доступ к .htaccess и к php.ini?

Добавлено через 1 минуту
Просто можно проще чуть реализовать все через формат csv, так как его база лучше понимает
 
katrukhin, спасибо за ответ

походу где то на сервере, происходит смена кодировки.
Где? Текст же нормально отображается ("ПерваяСтрока" и т.д.)

Такая же проблема порой с Денвером. У тебя есть доступ к .htaccess и к php.ini?
Не денвер, сервер под FreeBSD. Доступ ко всем конфигам есть.

Просто можно проще чуть реализовать все через формат csv, так как его база лучше понимает
Да, знаю, к сожалению не вариант.
 
Такое только с цифрами происходит?
 
Если не критично, может имеет смысл воспользоваться другим парсером XLS? недавно использовал парсер вот отсюда:
никаких проблем с кодировками не возникало.
 
Если не критично, может имеет смысл воспользоваться другим парсером XLS?
Спасибо. Я ставил много разных библиотек. Многие безуспешно, а в тех что заработали были аналогичные проблемы. Думаю, это проблема не парсера.
 
В этом парсере встроена функция перекодировки unicode, возможно это поможет решить проблему.
 
Походу проблема с приведением к нужному типу данных. Хотя очень странно что именно с цифрами.
Когда я писал класс для обработки csv файлов у меня была такая маленькая функция которая преобразовывала именно цифры в нужный формат.
PHP:
    function csv_to_num($str)
    {
        $str = str_replace(' ', '', $str);
        return floatval($str);
    }
Но сомневаюсь что поможет в данной ситуации. Надо полностью проследить за выполнением всех шагов преобразования и выяснить в каком именно месте это происходит.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху