Проблема с кодировкой символов при импорте в WordPress

#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 все портит.