У меня стандартная проблема с кодировкой импорта 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`. Чем они отличаются? Имеет ли это значение?
Я также запустил: показать переменные, такие как "character_set_database"
и получил latin1
;