импорт товаров не отрабатывает русский язык

Issue #95 wontfix
Alexey created an issue

При попытке импорта товаров, если значение поля написать русскими буквами - то оно не импортируется, вместо него отображается пустое поле. Но ! если первым символом перед русскими буквами поставить цифру (например 1тест), то это поле импортируется (в том же виде 1тест) Скрины прикладываю, чтобы понятнее было. Не работает в версиях 3.14beta, 3.15, 3.16. В версии санты 3.08 - работает. Версия php 5.2.7 Кстати, санта версии 3.15 выдает ошибку в этой ситуации: INFO: iconv(): Detected an illegal character in input string in /var/www/SITE.ru/modules/catalog/catalog.class.php on line 972

Comments (2)

  1. Alexey reporter

    Решено заменой кода. В функции function parse_csv_file($file, $separator, $limit = null) заменил $lc = $this->get_real_elements_from_line($line, $separator); на $lc = explode($separator, $line);

  2. Alexsander Vyshnyvetskyy

    get_real_elements_from_line() ссылается на функцию PHP str_getcsv(), которая как раз создана для разбора CSV данных. У Вас проблема в передаваемой кодировке... желательно подгонять под UTF-8, т.к. iconv() тоже может сбоить (он у вас элементарно может быть не настроен на стороне сервера).

    А по поводу предложенного Вами решения почитайте тут http://php.net/manual/ru/function.str-getcsv.php

    durik at 3ilab dot net ¶
    ...
    Why not use explode() instead of str_getcsv() to parse rows? Because explode() would not treat possible enclosured parts of string or escaped characters correctly.
    
  3. Log in to comment