WordPress или PHP обрезают текст после сохранения поста. Это происходит, когда есть специальный символ, такой как ’или ™.
Например, если я введу следующий текст:
This isn’t working
и тогда я сохраню пост, пост будет:
This isn
Я предполагаю, что это не MySQL, потому что я ввел тот же текст, и он работал.
Файл wp-config.php содержит следующее:
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
И я проверил это с
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', 'latin1_swedish_ci');
База данных mysql имеет параметры сортировки latin1_swedish_ci, а таблицы имеют параметры сортировки utf8_general_ci.
Я также пытался изменить сортировку таблиц, но это не сработало. Я использую последнюю версию WordPress. У меня нет опыта с сопоставлениями или кодированием. Итак, мой вопрос: есть ли способ заставить WordPress сохранить полностью пост, не обрезая содержимое, когда появляется специальный символ?
Подобное усечение очень вероятно пришло из латинского языка1 байтов подается в поле utf8.
Если ваш клиент (PHP или любой другой) генерирует латинские символы 1, а затем вы должен скажите серверу, что:
⚈ mysql: mysql_set_charset('utf8'); (deprecated)
⚈ mysqli: $mysqli_obj->set_charset('utf8');
⚈ PDO: $db = new PDO('dblib:host=host;dbname=db;charset=UTF-8', $user, $pwd);
Других решений пока нет …