MySQL 4.1.x,utf8, INSERT INTO BLOB, ошибки при наличии 8bit символов

  • Автор темы Автор темы slach
  • Дата начала Дата начала

slach

Новичок
MySQL 4.1.x,utf8, INSERT INTO BLOB, ошибки при наличии 8bit символов

Имею такую табличку
[sql]
CREATE TABLE `T_GPR_PROJECT_SOURCE` (
`source` int(11) NOT NULL auto_increment,
`project_fk` int(11) NOT NULL default '0',
`text` blob NOT NULL,
`success` tinyint(1) default NULL,
`created` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`source`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
[/sql]

при коннекте ставлю
SET NAMES utf8
все прекрасно работало
пока не стал получать данные из НЕКОНТРОЛИРУЕМОГО источника (STDIN ;)

при вставке в поле text
8bit cимволов

MYSQL ругается на первом же 8 bit символе
Invalid utf8 character string:

исходную кодировку не могу знать, она может быть любая

вопрос
как лечить??
убрать DEFAULT CHARSET=utf8??
в дальнейшем планируется изменение структуры и добавление полей типа CHAR не хотелось бы для них задавать charset отдельно

или есть какая то возможность задать что то вроде
BINARY BLOB ???
или
BINARY LONGTEXT ???
 
alpine ;)
нет
для вставки данных используется mysql_query()

вообще похоже... глюки все таки в структуре базы
либо у меня EMS MySQL Manager неправильно отображает DDL для таблицы... и у меня вместо BLOB - TEXT на самом деле
либо еще что

в общем пороюсь еще чуть чуть, сообщу

-~{}~ 20.09.05 19:39:

http://bugs.mysql.com/bug.php?id=9337
МДА
ну пипец...

не хотят фиксить в 4.1 ветке
 
> не хотят фиксить в 4.1 ветке

вообще-то фиксится будет только warning, а это не критично, имхо.
 
;)
ну если бы был ВАРНИНГ ;)
я бы сразу догадался
что у меня LONGTEXT вместо LONGBLOB

в общем банальная смена типа данных помогла
LONGBLOB нужен потому что туда бывает и по 10-15 метров в базу прилетает
хорошо правда что не задерживается там надолго...
 
Сверху