butik
Проверенные
		- Сообщения
- 98
- Реакции
- 36
- Баллы
- 11,015
Здравствуйте.
Есть форум рабочий на 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;
    }
			
				Последнее редактирование: 
			
		
	
								
								
									
	
								
							
							 
				 
						
 
 
		
 
 
		

 
 
		 
 
		 
 
		 
 
		 
 
		