Проблема кодирования персонажа после изменения серверов
Вопрос
Недавно я перенес свой сайт на основе WordPress с DreamHost VPS в Linode VPS, работающий с Debian + LEMP. После того, как я снова поднял сайт, я заметил много ошибочных символов в постах; Персонажи, такие как «и - были заменены таломой.
После того, как он посмотрел, казалось ясно, что проблема была связана с кодированием персонажа.
Я нашел гид, который предложил редактировать wp-config.php
и комментировать строки:
define('DB_CHARSET', 'utf8');
а также define('DB_COLLATE', '');
Я сделал это, и это исправило проблему, но мне интересно, был ли это лучший способ сделать это. Спасибо за совет.
Решение
Проведя весь день, работая над этим, я наконец нашел руководство, которое отлично работало:
До этого я попытался следить за информацией @Rarst, попробовал экспортировать базу данных и очистить ее вручную, попробовал плагин UTF-8 Sanitize с измененной версией отсюда http://www.prelovac.com/vladimir/ultimate-solution-to-weird-utf-character-coning-problem (Что на самом деле работало довольно хорошо, но не исправлял всех персонажей. И, вероятно, была ужасной идеей).
В любом случае, если кто -либо из вас когда -либо сталкивался с этой проблемой, ознакомьтесь с первой ссылкой, которую я разместил. Процедура была довольно проста и в основном сводилась к замене SET NAMES latin1
с SET NAMES utf8
После экспорта базы данных, затем явно убедившись импортировать новую очищенную базу данных в качестве UTF8.
Другие советы
Вот еще одно решение, которое сработало для меня ...
Просто комментарий DB_CHARSET
а также DB_COLLATE
в wp-config.php
//define('DB_CHARSET', 'utf8');
//define('DB_COLLATE', '');
Видеть Преобразование наборов символов базы данных в кодексе. В статье отмечается, что быть полностью переписанным в версии 3.0.1, поэтому информация должна быть актуальна.
Я перешел файлы веб -сайта со старого в новый каталог, и я смог изменить:
DEFINE ('DB_CHARSET', 'UTF8MB4');
к
DEFINE ('DB_CHARSET', 'UTF8');
И это решило проблему с пробелом черного бриллианта.