Я поддерживаю довольно старую систему PHP, которая взаимодействует с таблицей базы данных mysql Styles
, которая имеет кодировку latin1.Синтаксис создания (показан только соответствующий столбец) приведен ниже:
CREATE TABLE `StylesTbl` (
`styleName` varchar(40) COLLATE latin1_danish_ci NOT NULL,
) ENGINE=MyISAM AUTO_INCREMENT=21976 DEFAULT CHARSET=latin1 COLLATE=latin1_danish_ci;
Например, запись в базе данных для styleName
:
"Городской пейзаж 20", черный +Городской пейзаж 24 ”wine”.
Который на производственном сервере выглядит так:
«Городской пейзаж 20� черный + Городской пейзаж 24� вино»
Однако текст выглядит совершенно нормальномой локальный экземпляр сервера, на котором выполняется тот же код.Исходя из этого, я предполагаю, что различия должны заключаться либо в
- версии PHP (но и сервер, и мой локальный экземпляр используют 5.6.30)
- версия Mysql (сервер использует 5.5, Мой локальный - 5.6 - может ли это повлиять на него ??)
За исключением вышеперечисленного, выполняемый код такой же, а содержимое базы данных такое же (я определяюлокальная версия производственной базы данных, использующая mysqldump производственной базы данных при тестировании).
Я считаю, что проблема повторного выпуска начинается с того, что у нас есть вторая база данных с именами в UTF-8,и когда в старой базе данных создается новый стиль, информация извлекается из новой базы данных в UTF-8 и сохраняется.