У нас есть сервер Old 5.1 Mysql, работающий на сервере 2003. Недавно мы переходим к более новой среде с Mysql 5.6 и сервером 2008. Теперь на новом сервере мы продолжаем получать ошибки при вставке специальных символов, таких как "Ã".
Теперь я проверил исходную кодировку, и это UTF-8. Но старый сервер Mysql был настроен как latin1 (Server/tables/colms) с collation latin_swedish_ci, и мы не получили никаких ошибок в старой среде.
Теперь я провел некоторое тестирование, так как мы не живем в новой среде. Я попытался установить все таблицы на таблицы/столбцы, а также на latin1. В обоих случаях я продолжаю получать эти ошибки.
Я заметил, что на старом сервере сервер по умолчанию char -set - latin1, а на новом сервере - utf-8. Может ли это быть проблема? Я нахожу это очень странным, потому что источником является utf-8.
Есть ли какой-нибудь вариант для обработки этого, который может быть включен в старой среде? Я не уверен, что существует нечто подобное. Я сравнил настройки в инструменте администрирования mysql и, кроме стандартного char -set, выглядит одинаково.
EDIT:
ПОКАЖИТЕ ПЕРЕМЕННЫЕ КАК char% ';
Старый сервер:
+--------------------------+-----------------------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------------------+
| character_set_client | utf8 | *
| character_set_connection | utf8 | *
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 | *
| character_set_server | latin1 |
| character_set_system | utf8 |
Новый сервер:
+--------------------------+-----------------------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------------------+
| character_set_client | utf8mb4 | *
| character_set_connection | utf8mb4 | *
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 | *
| character_set_server | utf8 |
| character_set_system | utf8 |
Насколько я понимаю из статьи на сайте MySQL utf8mb4 - это супер-набор utf8, это не должно создавать проблемы для кодирования, я думаю, поскольку они в основном идентичны по кодировке правильно?