У меня есть стандартная ошибка кодирования импорта MySQL, но я не могу ее решить.
У моего клиента была установка WordPress на некоторое время. Я сбросил базу данных в файл и импортировал ее локально. Полученные страницы имеют разбрызгивание символов.
Я изучил свойства базы данных с обеих сторон: производство: показать создание базы данных wordpress;
CREATE DATABASE `wordpress` /*!40100 DEFAULT CHARACTER SET latin1 */
local: show create wordpress wordpress,
CREATE DATABASE `wordpress` /*!40100 DEFAULT CHARACTER SET latin1 */
production: show create table wp_posts;
CREATE TABLE `wp_posts` (
`ID` bigint(20) unsigned NOT NULL auto_increment,
...
KEY `post_date_gmt` (`post_date_gmt`)
) ENGINE=MyISAM AUTO_INCREMENT=7932 DEFAULT CHARSET=utf8
local: show create table wp_posts;
CREATE TABLE `wp_posts` (
`ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
...
KEY `post_date_gmt` (`post_date_gmt`)
) ENGINE=MyISAM AUTO_INCREMENT=7918 DEFAULT CHARSET=utf8
Я часами читал форумы о том, как раздавить, но я не могу заставить ничего работать. 99% ответов говорят, что они соответствуют набору символов между базами данных. То, что я думаю, должно работать, если следующее:
mysqldump --opt --compress --default-character-set=latin1 -uusername -ppassword wordpress | ssh [email protected] mysql --default-character-set=latin1 -uusername -ppassword wordpress
Я сделал это с помощью utf8 char -set. Все еще с.
Я попытался напрямую изменить дамп SQL, поставив с помощью utf8 или latin1 в строке "SET names UTF8". Все еще с.
Странные симптомы
Я ожидаю, что эти символы появятся вместо специальных символов в контенте, например ñ или ö, но я видел его там, где обычно было просто пространство. Я также видел это вместо апострофов (но не всех апострофов), двойных кавычек и символов товарных знаков.
Знаки are довольно редки. Они появляются в среднем от трех до четырех раз за страницу.
Я не вижу никаких при просмотре базы данных через Sequel Pro (локально или вживую). Я не вижу никаких в SQL при просмотре через Textmate.
Что мне не хватает?
ИЗМЕНИТЬ
Дополнительная информация:
Я попытался определить, что в базе данных думает, что кодировка. Я побежал show table status
, и кажется, что Collations являются комбинацией utf8_general_ci,
utf8_bin and
latin1_swedish_ci`. Чем они отличаются? Это имеет значение?
Я также запускал: show variables like "character_set_database"
и получил latin1
;