Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > invalid byte sequence


Автор: Grost 12.11.2013, 12:27
Здравствуйте.
При добавлении строки в таблицу получаю следующую ошибку:
Код

DBIx::Class::ResultSet::create(): DBI Exception: DBD::Pg::st execute failed: ERROR:  invalid byte sequence for encoding "UTF8": 0xa0 
[for Statement "INSERT INTO "radio"."play_now" ( "artist", "mtime", "name", "radio_id") VALUES ( ?, now(), ?, ? )" with ParamValues: 1='Arctic Monkeys', 2='Brianstorm ', 3='8'] at ..


Можно конечно завернуть create в eval и игнорировать ошибку, но хотелось бы сделать красивее. Данные приходят от внешнего источника, кодировка не известна. Подскажите, как можно красиво исправить данную ошибку?

Автор: Bulat 12.11.2013, 13:09
Цитата(Grost @  12.11.2013,  12:27 Найти цитируемый пост)
invalid byte sequence for encoding "UTF8": 0xa0

По-моему, явно символизирует об ошибке в кодировках.

Цитата(Grost @  12.11.2013,  12:27 Найти цитируемый пост)
Данные приходят от внешнего источника, кодировка не известна. 

Все же хорошо бы точно знать в какой кодировке и приводить к единой кодировке, соответствующей той, что в БД.  smile 

Автор: Grost 12.11.2013, 13:24
В БД то у меня utf8, а вот партнёры по определению не хорошие люди.

Автор: Grost 13.11.2013, 11:28
Недавно демон упал на этой же ошибке. А именно на:
Код

..with ParamValues: 1='Arctic Monkeys', 2='Brianstorm ', 3='8']

т.е. он работает, но на этих параметрах падает :( Может реально проще это игнорить?

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