MySQL+mysqlpp+cp1251
Моя задача -- получить данные, перекодировать в UTF и отдать дальше.
При старте соединения я передаю "SET NAMES cp1251;". (использую библиотеку libmysqlpp)
получаю, перекодирую, отправляю..... все работает/
Через некоторое время коннект обрывается, и я его восстанавливаю, передаю set names , и начинаю получать мусор.
Если не передавать set names после реконнекта, то результат аналогичный.
Я в панике.
Под мусором я подразумеваю байт 3Fh вместо любого кириллического символа.
Пробелы передаются правильно.
Цитата:
SET character_set_client='cp1251';
SET character_set_results='cp1251';
SET collation_connection='cp1251_ukrainian_ci';
SET character_set_results='cp1251';
SET collation_connection='cp1251_ukrainian_ci';
Или Я не понял и их надо было поставить ВМЕСТО set names, а не ДОПОЛИТЕЛЬНО....?
Выполни в пхпМайАдмине (или сторонней проге)
Цитата:
SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';
SHOW VARIABLES LIKE 'collation%';
и увидишь, что там много разных значений...
У меня это:
Цитата:
"character_set_client" "utf8"
"character_set_connection" "utf8"
"character_set_database" "cp1251"
"character_set_filesystem" "binary"
"character_set_results" "utf8"
"character_set_server" "latin1"
"character_set_system" "utf8"
"character_set_connection" "utf8"
"character_set_database" "cp1251"
"character_set_filesystem" "binary"
"character_set_results" "utf8"
"character_set_server" "latin1"
"character_set_system" "utf8"