Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте. Да, знаю, что на эту тему есть огромное множество тем на разных форумах и статей, но перерыв это все, я все-таки решил обратиться за помощью.
Поставил себе MySQL. При настройке сервера указал кодировку utf-8, однако после выполнения такого скрипта:
Неактивен
Чисто случайно нашел проблему. Ради эксперимента делал запросы с разными кодировками и как оказалось, данные были в cp866, что как-то непонятно, ибо файл в котором хранились скрипты был перекодирован и с тех пор хранит данные в UTF-8 (судя по тому, что говорит Notepad++). Вопрос теперь в том, как эту проблему решить? Перед заносом данных из файла делал дроп таблицы и set names utf8.
Отредактированно Mizantrop_LoL (02.05.2016 17:28:46)
Неактивен
Если консоль была в cp866, то перед вставкой данных нужно выполнить SET NAMES cp866. В таблице все будет в utf8, так как она определена как utf8, а SET NAMES для того, чтобы указать в каком формате консоль.
Неактивен
Ага, понял. Благодарю.
А почему теперь при загрузке с файла ругается на превышение размера поля при инсерте, но если скопировать запрос и вставить в консольку - он отлично проходит?
Неактивен
Ругаться будет, если Вы передаете utf8 под видом cp866. Нужно, чтобы кодировка передаваемых символов и параметр SET NAMES совпадали.
Неактивен