Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Libraries > В таблице с utf8 режет текст после неанглийского с


Автор: mstdmstd 24.2.2011, 15:25
Всем привет
В проекте Symfony 1.4.8 я конвертирую данные из excel-файла и в одной строке 
есть текст наподобе BACARDI PIÑA COLADA 
Буква после BACARDI PI не из английского алфавита По-моему испанская Ñ
И при записи этой строки в базу данных записывается строка "BACARDI PI" а остальное режется
В логе я вижу : 
Код

Feb 24 12:48:31 symfony [debug] {sfPropelLogger} INSERT INTO drinks_reference (`ID`,`NAME`,`SKU`,`PRICE`,`DESCRIPTION`,`CREATED_AT`,`UPDATED_AT`) 
VALUES (NULL,'BACARDI PI�A COLADA','08048000105',10,'','2011-02-24 12:48:31','2011-02-24 12:48:31')

В настройке базы:
Код

all:
  propel:
    class: sfPropelDatabase
    param:
      ...
      encoding: utf8
      classname: DebugPDO

      
Таблица utf8 : 
Код

CREATE TABLE IF NOT EXISTS `drinks_reference` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL,
  `sku` varchar(70) NOT NULL,
  `price` int(11) NOT NULL,
  `image` varchar(100) NOT NULL DEFAULT '',
  `description` text NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `ind_drinks_reference` (`name`),
  UNIQUE KEY `ind_drinks_reference_sku` (`sku`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=898 ;
      
База создана с кодировкой utf8_general_ci
Я полагал что с utf8 проблем быть не должно. Не подскажете в чем проблема и как это подороть ?

Автор: skyboy 24.2.2011, 16:33
set names или аналог в symfony.
надо выяснить, как данные передаются(client_character_set, который, среди прочего, и устанавливает set names). если для передачи используется умолчальный вариант  - latin1, то такие буквы и будут обрезаться

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)