butik
Проверенные
- Сообщения
- 98
- Реакции
- 36
- Баллы
- 5,515
Здравствуйте.
Есть форум рабочий на VBULLETIN V3.8 база у воблы в кодировке utf-8_general_ci
Конвертнул базу vb 3.8 на свежеустановленный xenforo 1.5.10
Весь процесс длился более часа, в итоге на форуме вместо русских букв странные крякозабы.
Ребята подскажите как можно привести в порядок базу?
---
UPD
Можно было и дальше пробовать возиться и пробовать импортировать и экспортировать базу с разными режимами (были задействованы sympex dumper pro, navicat, phpmyadmin, textpipe pro, sublime text 2, notepad++ и т.д.) и тратить свое время на неуспешные конвертации...
Решение:
Как оказалось от разработчиков нас поджидает "пасхалочка" в стандартном скрипте импорта, если не поправить то можно впустую потерять немало времени в зависимости от обьема базы.
Судя по коду, это было давно и разработчики немного сменили код, но со старой проблемкой, пофиксил в актуальной версии xenforo и получилось так (закоментил участок)
Есть форум рабочий на VBULLETIN V3.8 база у воблы в кодировке utf-8_general_ci
Конвертнул базу vb 3.8 на свежеустановленный xenforo 1.5.10
Весь процесс длился более часа, в итоге на форуме вместо русских букв странные крякозабы.
Ребята подскажите как можно привести в порядок базу?
---
UPD
Можно было и дальше пробовать возиться и пробовать импортировать и экспортировать базу с разными режимами (были задействованы sympex dumper pro, navicat, phpmyadmin, textpipe pro, sublime text 2, notepad++ и т.д.) и тратить свое время на неуспешные конвертации...
Решение:
Как оказалось от разработчиков нас поджидает "пасхалочка" в стандартном скрипте импорта, если не поправить то можно впустую потерять немало времени в зависимости от обьема базы.
Конвертировал vBulletin в Xenforo и столкнулся с проблемой, что даже при указании явной кодировки utf-8 при импорте, и корректном хранении всех данных vBulletin в utf-8, всё равно получаем кракозябры после импорта. После недолгих поисков в одном из скриптов импортера, а именно library/XenForo/Importer/Abstract.php была найдена функция _convertToUtf8, которая все импортируемые данные "насильно" пытается конвертировать в utf-8, чем и вызывает вышеупомянутую проблему. Следовательно, отучаем её это делать. = )
Из файла library/XenForo/Importer/Abstract.php вырезаем следующий кусочек кода:
Источник:PHP:// note: assumes charset is ascii compatible if (preg_match('/[\x80-\xff]/', $string)) { if (function_exists('iconv')) { $string = @iconv($this->_charset, 'utf-8//IGNORE', $string); } else if (function_exists('mb_convert_encoding')) { $string = mb_convert_encoding($string, 'utf-8', $this->_charset); } }
У Вас недостаточно прав для просмотра ссылок. Вход или Регистрация
Судя по коду, это было давно и разработчики немного сменили код, но со старой проблемкой, пофиксил в актуальной версии xenforo и получилось так (закоментил участок)
PHP:
protected function _convertToUtf8($string, $entities = null)
{
// note: assumes charset is ascii compatible
/* if (preg_match('/[\x80-\xff]/', $string))
{
$newString = false;
if (function_exists('iconv'))
{
$newString = @iconv($this->_charset, 'utf-8//IGNORE', $string);
}
if (!$newString && function_exists('mb_convert_encoding'))
{
$newString = @mb_convert_encoding($string, 'utf-8', $this->_charset);
}
$string = ($newString ? $newString : preg_replace('/[\x80-\xff]/', '', $string));
} */
$string = utf8_unhtml($string, $entities);
$string = preg_replace('/[\xF0-\xF7].../', '', $string);
$string = preg_replace('/[\xF8-\xFB]..../', '', $string);
return $string;
}
Последнее редактирование: