Есть ли способ получить преобразованный в кодировку набор результатов из БД? - PullRequest
1 голос
/ 15 апреля 2020

Ситуация: 2 базы данных, одна закодирована в latin1, другая в UTF8.

Я пытаюсь написать скрипт, который читает что-то из UTF8-DB и сравнить его с latin1-DB, затем написать что-то в базу данных latin1.

Я хотел бы получить результаты из UTF8-DB, закодированной как latin1.

Возможно ли это без написания настраиваемого многомерного обхода массива utf8_decode () и применить его к массиву результатов в PHP?

Либо с помощью mysql / postgres, PDO, либо просто с помощью простых команд PHP?

1 Ответ

1 голос
/ 15 апреля 2020

Подход к базе данных

SELECT  CONVERT(columnlatin1 USING utf8)
FROM table;

PHP декодер

function utf8_decode_deep(&$input) {

      if (is_string($input)) {
          $input = utf8_decode($input);
      } else if (is_array($input)) {
          foreach ($input as &$value) {
              utf8_decode_deep($value);
          }

          unset($value);
      } else if (is_object($input)) {
          $vars = array_keys(get_object_vars($input));

          foreach ($vars as $var) {
              utf8_decode_deep($input->$var);
          }
      }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...