Конвертация текста win1251 в UTF-8

Статус
В этой теме нельзя размещать новые ответы.
Предлагаю короткую двунаправленную функцию. Конвертирует текст из юникода в виндовс и обратно.
/**
* Конвертирует текст из юникода и обратно
*
* @param string $str - Строка текста
* @param string $type - "w" - utf2win, "u" - win2utf
* @return string
*/

PHP:
function utf8_convert($str, $type)
{
   static $conv = '';
   if (!is_array($conv))
   {
      $conv = array();
      for ($x=128; $x <= 143; $x++)
      {
         $conv['utf'][] = chr(209) . chr($x);
         $conv['win'][] = chr($x + 112);
      }
      for ($x=144; $x<= 191; $x++)
      {
         $conv['utf'][] = chr(208) . chr($x);
         $conv['win'][] = chr($x + 48);
      }
      $conv['utf'][] = chr(208) . chr(129);
      $conv['win'][] = chr(168);
      $conv['utf'][] = chr(209) . chr(145);
      $conv['win'][] = chr(184);
   }
   if ($type == 'w')
   {
      return str_replace($conv['utf'], $conv['win'], $str);
   }
   elseif ($type == 'u')
   {
      return str_replace($conv['win'], $conv['utf'], $str);
   }
   else
   {
      return $str;
   }
}
 
Хорошая функция, но по мне iconv удобнее, благо этот модуль на всех нормальных хостингах включен.
 
Туда:
PHP:
function utf2win($str)
	{
		$iso=mb_convert_encoding ($str,'ISO-8859-5','UTF-8');
		return convert_cyr_string ( $iso, 'i', 'w');
	}
Обратно:
PHP:
function win2utf($str)
	{
		$iso=convert_cyr_string ( $str, 'w', 'i');
		return mb_convert_encoding ($iso,'UTF-8','ISO-8859-5');
	}
 
Двойная конвертация? :eek: Ну-ну.

Быстрее iconv() в PHP для этого дела ничего нет.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху