Конвертировать кодировку в запрос MySQL - PullRequest
2 голосов
/ 24 апреля 2010

У меня есть вопрос о преобразовании кодировки из запроса mysql.

У меня есть 2 базы данных. Один для сайта (joomla), другой для форума (IPB). Я делаю запрос изнутри Joomla, которые по умолчанию имеют "SET NAMES UTF8". Я хочу запросить таблицу в базах данных форума. Таблица называется "ibf_topics". Эта таблица имеет латинскую кодировку.

Я делаю следующее, чтобы выбрать что-нибудь из таблицы not-utf8.

//convert connection to handle latin1.
$query = "SET NAMES latin1";
$db->setQuery($query);
$db->query();

$query = "select id, title from other_database.ibf_topics";
$db->setQuery($query);
$db->query();
//read result into an array.

//return connection to handle UTF8.
$query = "SET NAMES UTF8";
$db->setQuery($query);
$db->query();

После этого, когда я хочу использовать выбранную плитку, я использую следующее:

echo iconv("CP1256", "UTF-8", $topic['title'])

Вопрос в том, можно ли вообще избежать всех этих хлопот? Пока я не могу изменить базу данных форума на UTF8 и не могу изменить базу данных joomla на latin1: S

Ответы [ 3 ]

2 голосов
/ 02 мая 2010

Вы можете открыть 2 соединения с базой данных, 1 с Joomla и одно с IPB. вы будете использовать больше ресурсов, но это облегчит чтение вашего кода, и вы сможете выполнить все настройки (charset и т. д.) в настройке db. это также облегчит миграцию позже, если ситуация изменится - вам не нужно будет проходить через код, удаляя все SET NAMES.

0 голосов
/ 29 апреля 2014

/ * Вы можете установить кодировку после подключения к базе данных * /

заголовок ('Content-Type: text / html; charset = utf-8');

/ * после подключения * /

mysql_query ("SET NAMES utf8");

/ * или же * /

mysql_query ("SET CHARACTER SET utf8");

/ * или же * /

mysql_query ("SET COLLATION_CONNECTION = 'utf8_general_ci'");

0 голосов
/ 24 апреля 2010
$query = "SET NAMES UTF8";
$db->setQuery($query);
$db->query();

$query = "select id, title from other_database.ibf_topics";
$db->setQuery($query);
$db->query();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...