drush PDO exception

Главные вкладки

Аватар пользователя ins-sea ins-sea 2 сентября 2015 в 0:50

Всем привет.
К сожалению, во всемогущем гугле и остальном тырнете не нешёл.
Пытаюсь через php создать ноду с ооочень длинным текстом. Поле body, тип longtext. drush при попытке создать такую ноду выдаёт PDOException:
в функции field_sql_storage_field_storage_write() (строка 514 в файле field_sql_storage/field_sql_storage.module).
В поле не многим более 100к символов. Если ut8_encode($str), выдаёт нечитаемый текст. Если сначала декод, потом енкод, также, нечитаемый текст.
Изначальный текст = utf-8.
Чем бороться? Есть вариант по частям сохранять, но пока не пробовал. Да и не спортивно.

Буду рад за любую подсказку.

Комментарии

Аватар пользователя ins-sea ins-sea 2 сентября 2015 в 18:05

Drush выдёт это:
WD node: PDOException: in field_sql_storage_field_storage_write() [error]
(line 514 of field_sql_storage.module).

Похоже, нашёл. Проблема в том, что в текстовом поле в UTF-8 попался unicode-символ.

Как можно красиво от него избавиться? Или только посимвольно смотреть содержимое и перекодировать всё таким образом:
$symbol = iconv(mb_detect_encoding($symbol), "UTF-8//TRANSLIT//IGNORE", $symbol);