PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 2
treeek Отправлено: 26 Марта, 2017 - 15:00:03 • Тема: Кракозябры при UTF - 8 • Форум: Вопросы новичков

Ответов: 3
Просмотров: 198
Строитель пишет:
treeek, попробуйте заменить strtoupper() на mb_strtoupper(). И ещё, если понадобится - замените strlen() на mb_strlen().

никаких изменений.
(Добавление)
Решил вопрос. Взял другой код.
treeek Отправлено: 26 Марта, 2017 - 13:46:32 • Тема: Кракозябры при UTF - 8 • Форум: Вопросы новичков

Ответов: 3
Просмотров: 198
Нашел у вас код на форуме градиента текста:
PHP:
скопировать код в буфер обмена
  1. function str2gradient($text,$from='', $to='', $mode="hex")
  2. {
  3.     if($mode=="hex")
  4.     {
  5.         $to   = hexdec($to[0].$to[1]).",".hexdec($to[2].$to[3]).",".hexdec($to[4].$to[5]);
  6.         $from = hexdec($from[0].$from[1]).",".hexdec($from[2].$from[3]).",".hexdec($from[4].$from[5]);
  7.     }
  8.  
  9.     if( empty($text) )
  10.         return '';
  11.     else
  12.         $levels=strlen($text);
  13.  
  14.     if (empty($from))
  15.                 $from = array(0,0,255);
  16.     else
  17.                 $from = explode(",", $from);
  18.                                
  19.     if (empty($to))
  20.  
  21.                 $to = array(255,0,0);
  22.     else
  23.                 $to = explode(",", $to);
  24.  
  25.         $output = "";
  26.  
  27.         for ($i=1;$i<=$levels;$i++)
  28.         {
  29.                 for ($ii=0;$ii<4;$ii++)
  30.                 {
  31.  
  32.                         $tmp[$ii] = $from[$ii] - $to[$ii];
  33.                         $tmp[$ii] = floor($tmp[$ii] / $levels);
  34.                         $rgb[$ii] = $from[$ii] -($tmp[$ii] * $i);
  35.  
  36.                         if ($rgb[$ii] > 255) $rgb[$ii] = 255;
  37.  
  38.                         $rgb[$ii] = dechex($rgb[$ii]);
  39.                         $rgb[$ii] = strtoupper($rgb[$ii]);
  40.  
  41.                         if (strlen($rgb[$ii]) < 2) $rgb[$ii] = "0$rgb[$ii]";
  42.                 }
  43.             $output .= "<font color=\"#".$rgb[0].$rgb[1].$rgb[2]."\">" . $text[$i -1 ] . "</font>";
  44.         }
  45.     return $output;
  46. }
  47.  

При использовании функции с русским текстом echo str2gradient("Тестовый текст", "f11717", "21f117");
Получаются кракозябры: ����������
Хотя при использовании английского такой ошибки нет.
Кодировка стоит UTF-8 в шапке сайта. Думаю ошибка в коде, а где, понять не могу.

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB