За последние 24 часа нас посетили 17613 программистов и 1588 роботов. Сейчас ищут 1459 программистов ...

Разбор XLS и кодировки

Тема в разделе "PHP для новичков", создана пользователем Аляксей, 3 фев 2008.

  1. Аляксей

    Аляксей Активный пользователь

    С нами с:
    30 мар 2007
    Сообщения:
    7
    Симпатии:
    0
    Кароч, такая ситуация. Разбираю XLS файл, всё ОК. Одна только проблема, что выдаётся он в кодировке UTF-8, кажется...

    В базу данных заносится в таком же виде. А база в подировке вин-1251. Как мне корректно заносить в базу, чтобы рещультат был иминно в 1251 кодировке, а не в этих кракозябрах???

    Результат вот в каком виде & #1051; & #1080;& #1089;& #1090; (без пробелов)
     
  2. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    [sql]SET NAMES 'cp1251'[/sql]
    сразу после коннекта к БД.
     
  3. Аляксей

    Аляксей Активный пользователь

    С нами с:
    30 мар 2007
    Сообщения:
    7
    Симпатии:
    0
    Не помогает :(

    mysql_query('set CHARACTER SET cp1251_koi8'); тоже не помогает :(
     
  4. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
  5. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    1. Проверьте вашу таблицу - поля текста должны быть в кодировке которая поддерживает ваш язык. Подчеркиваю, важно не совпадение кодировки, а именно факт поддержки вашего языка этой кодировкой.

    Поля могут быть вообще в разной кодировке:
    [sql]CREATE TABLE `test` (
    `x1` varchar(5) NOT NULL,
    `x2` varchar(5) character set koi8r NOT NULL,
    `x3` varchar(5) character set utf8 NOT NULL,
    `x4` varchar(5) character set cp866 NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=cp1251;[/sql]
    В таблице 4 разные кирилистические кодировки - будут абсолютно нормально работать.

    2. После подключения установите кодировку в которой работает ваша система (как я понял, в вашем случае это UTF-8 )
    [sql]SET NAMES UTF8[/sql]

    После этого запросы к DB отправляйте в этой кодировке. Результат прийдет в ней же - MySQL сам позаботиться о преобразованиях как ввода так и вывода всех строковых значений.
     
  6. Аляксей

    Аляксей Активный пользователь

    С нами с:
    30 мар 2007
    Сообщения:
    7
    Симпатии:
    0