#php #wordpress #drupal #character-encoding
#php #wordpress #drupal #кодировка символов
Вопрос:
Я создал процедуру для переноса содержимого из Drupal в WordPress. По сути, я запрашиваю базу данных Drupal в PHP-скрипте, а затем использую wp_insert_post()
для добавления этих данных в базу данных WordPress.
У меня проблема с кодировкой символов, когда после того, как я вставил содержимое Drupal в WordPress, некоторые символы приводят к удалению оставшейся части строки.
Возьмем этот пример:
<strong>The following text will stop at the back tick’, this text will get stripped out</strong><br />
При импорте этого все, что после обратного тика, удаляется как таковое:
<strong>The following text will stop at the back tick
Чтобы попытаться исправить эту проблему, я попытался изменить кодировку символов, однако при этом удаляется обратная галочка, символ, похожий на пробел, а также символы, такие как символ фунта £
.
$html = iconv('utf-8', 'us-ascii', $html);
Я также пробовал //TRANSLIT
и //IGNORE
с этой функцией, но все равно она либо полностью удаляет эти символы, либо останавливается на первой проблеме.
Может кто-нибудь посоветовать способ получить контент в формате, который будет принят WordPress, но без удаления этих символов, но преобразовать их в альтернативу.
Редактировать
Я также пытался передать строку htmlentities()
, однако это возвращает пустую строку.
Кроме того, я попытался определить кодировку строки, используя mb_detect_encoding()
, но это возвращает false , что означает, что он не может определить кодировку.
Редактировать 2
Когда я просматриваю запись базы данных Drupal в шестнадцатеричном режиме, обратная галочка возвращается как ‚Äô
.
Комментарии:
1. Нет никакой помощи, если мы не знаем, что делает процедура.
2. Я добавил еще немного информации к вопросу, но, как было указано изначально, контент был перенесен из Drupal в WordPress.
3. Я знаю, что wordpress пытается преобразовать кавычки и многие другие символы в эквиваленты UTF-8, и я бы предположил, что это внутри этой
wp_insert_post()
функции. Попробуйте пойти в этом направлении. Я надеюсь, что вы не собираетесь вести блог о кодировании, я действительно ненавижу копирование с сайтов WordPress именно по этой причине.4. Если я оставляю
wp_insert_post()
метод для его собственных устройств, возникает проблема, я пытаюсь исправить это, прежде чем передавать содержимое этому методу.5. Внутри происходит много волшебства
wp_insert_post()
. Посмотрите, какsanitize_post_field()
это работает. Ваш контент может быть в порядке, это просто wordpress все портит.