LINUX.ORG.RU

utf8_general_ci > utf8_unicode_ci


0

1

insert (..) select .. ; переношу данные из Django (там всё в utf8_general_ci ) во Flask (а там всё в utf8_unicode_ci)

получаю UnicodeDecodeError: 'utf8' codec can't decode byte 0xd0 in position 23627: unexpected end of data

когда же это кончится и как с этим борться?

★★★
Ответ на: комментарий от Sorcerer

я не делаю дамп, я делаю вставку с помощью селекта с определёнными полями

вставка нормально проходит, а когда Flask начинает работать с перенесёнными строками получаю UnicodeDecodeError: 'utf8' codec can't decode

fMad ★★★
() автор топика
Ответ на: комментарий от fMad

Так это ж проблема не mysql, а flask/питона, как я понял. Скорее всего получается так, что клиент mysql (flask) не устанавливает charset & collation для сессии, а по умолчанию оно из-за настроек окружения, сервера или чего ещё работает не в utf-8.

Sorcerer ★★★★★
()
Ответ на: комментарий от Sorcerer

смотрю в логах mysql сервера, вижу, что Flask начинает сессию вот так

		  602 Query	SET NAMES utf8
		  602 Query	set autocommit=0
		  602 Query	SHOW VARIABLES LIKE 'sql_mode'
		  602 Query	SELECT DATABASE()
		  602 Query	SELECT @@tx_isolation
		  602 Query	show collation where `Charset` = 'utf8' and `Collation` = 'utf8_bin'
		  602 Query	SELECT CAST('test plain returns' AS CHAR(60)) AS anon_1
		  602 Query	SELECT CAST('test unicode returns' AS CHAR(60)) AS anon_1
		  602 Query	SELECT CAST('test collated returns' AS CHAR CHARACTER SET utf8) COLLATE utf8_bin AS anon_1
		  602 Query	SELECT 'x' AS some_label
		  602 Query	rollback
fMad ★★★
() автор топика
Последнее исправление: fMad (всего исправлений: 1)
Ответ на: комментарий от fMad

Тогда, может, дело вообще не в mysql? Надо уточнить, откуда взялись данные, на которые питон ругается, и посмотреть их внимательнее.

Sorcerer ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.