Я использую Django на Bluehost. Я создал форму для ввода пользователем, но входы Unicode из этой формы не могут быть сохранены или отображены в символах. Таким образом, я сделал SO и google-поиск, чтобы изменить набор Collate и Character моей базы данных. Я бегу Этот SQLALTER DATABASE изменить COLLATE не работает
ALTER DATABASE learncon_pywithyou CHARACTER SET utf8 COLLATE utf8_unicode_ci;
из python27 manage.py dbshell
, который инициировал MySQL оболочки, что показывает на экране Query OK, 1 row affected (0.00 sec)
.
Так что я предполагаю, что проблема решена, но на самом деле это не так. Этот sql ничего не сделал, поскольку позже я нашел его в phpMyAdmin, предоставленном Bluehost. Все поля Varchar всех таблиц все еще находятся в lantin1_swedish_ci
.
Предположим, что вместо этого следует работать alter table
. Я бегу это на MySQL alter table mytable character set utf8 collate utf8_unicode_ci;
хотя на экране он показывает Query OK. 4 rows affected
, он на самом деле ничего не сделал ни, то сортировки этих полей в mytable
не изменилось.
Итак, я, наконец, вручную изменяю поля в phpMyAdmin для mytable
, и это работает, теперь я могу вставлять эту таблицу в unicode, а также отображать их правильно, но у меня есть около 20 таблиц таких, я не хочу для их изменения вручную.
У нас вообще есть простой и эффективный способ изменения сортировки каждого поля для хранения и отображения правильных юникодов?
Спасибо за этот опытный ответ, теперь я считаю, что эти СУБД действительно рассматривали автоматизацию в дизайне, даже с небольшим количеством ключевых слов. Это то, что я хочу, это должно сэкономить много времени. И спасибо за @StuartLC за полезную основу, «конвертировать в». – TonyTony
То же самое, что и здесь: если в таблице ничего не конвертируется, кодировка остается неизменной - в этом случае вы должны использовать запрос без «конвертировать в». MariaDB 10.0.27. – korkman