Ужасная проблема с кодировкой импорта MySQL - еще раз

У меня стандартная проблема с кодировкой импорта MySQL, но я не могу ее решить.

У моего клиента запущена установка WordPress на некоторое время. Я' Вы скопировали базу данных в файл и импортировали ее локально. На полученных страницах разбросано символов.

Я проверил свойства базы данных с обеих сторон: production: show create database wordpress;

CREATE DATABASE `wordpress` /*!40100 DEFAULT CHARACTER SET latin1 */

local: show create database 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 username@anotherserver.net mysql --default-character-set=latin1 -uusername -ppassword wordpress

Я также сделал это, используя набор символов utf8. По-прежнему с символами

Я попытался изменить дамп SQL напрямую, указав utf8 или latin1 в строке «SET names UTF8». По-прежнему с символами .

Странные симптомы

Я бы ожидал, что эти символы появятся вместо специальных символов в контенте, например ñ или ö , но я' я видел это там, где обычно было бы просто пространство. Я также видел его вместо апострофов (, но не всех апострофов ), двойных кавычек и символов товарных знаков.

Знак встречается довольно редко. Они появляются в среднем от трех до четырех раз на странице.

Я не вижу никаких знаков при просмотре базы данных через Sequel Pro (локально или в реальном времени). Я не вижу никаких символов в SQL при просмотре через Textmate.

Что мне не хватает?

РЕДАКТИРОВАТЬ

Дополнительная информация:

Я попытался определить, что, по мнению живой базы данных, кодировка есть. Я запустил показать статус таблицы , и мне кажется, что сопоставления представляют собой смесь utf8_general_ci, utf8_bin и latin1_swedish_ci`. Чем они отличаются? Имеет ли это значение?

Я также написал: показать такие переменные, как " Проблема в том, что вы можете быстро сохранить и быстро загрузить, а это означает, что они могут продолжать перезагружать, чтобы повторно рандомизировать, пока они не получат то, что хотят. Есть ли способ получить текущее начальное значение моего объекта Random и, возможно, вернуться к той же точке при загрузке, чтобы они не могли злоупотребить рандомизацией?

15
задан Stephen Kennedy 11 December 2017 в 11:00
поделиться