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

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 ???
 

slach

Новичок
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, а это не критично, имхо.
 

slach

Новичок
;)
ну если бы был ВАРНИНГ ;)
я бы сразу догадался
что у меня LONGTEXT вместо LONGBLOB

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