Автор Тема: Unicode -> Win1251  (Прочитано 3326 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
Unicode -> Win1251
« : 26 Июня 2002, 17:09:40 »
Как сконвертировать строку из Юникода в стандартную windows-1251
Не все коту матрица.

Оффлайн kosm

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 110
  • +0/-0
  • 0
    • Просмотр профиля
    • http://japanretro.tk
Unicode -> Win1251
« Ответ #1 : 02 Марта 2004, 18:46:41 »
Ребят, а все-таки, чего-то не пойму - никак чтоли из unicode в 1251 не перекинуть? Подскажите плиз, если кто знает как.
Заранее благодарен!!!!!!!!!1

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Unicode -> Win1251
« Ответ #2 : 02 Марта 2004, 18:54:21 »
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн kosm

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 110
  • +0/-0
  • 0
    • Просмотр профиля
    • http://japanretro.tk
Unicode -> Win1251
« Ответ #3 : 02 Марта 2004, 19:18:36 »
Макс
Биг сенкс! Сейчас попробую что там предлогают.

Кстати, тоже вот нашел - работает, но почти :) не понимает. Если кто знает как подправить код, буду благодарен. С автором пока не связаться.


function deunicode($s){
    
$out="";
    
$de=false;
    
$beg=true;
    
$oc=0;
    for(
$i=0$i<strlen($s); $i++){
      
$c=substr($s,$i,1);
      if(
$beg){
        
$beg=false;
      }else{
        if(
$de){
          
$de=false;
        }else if(
ord($c)==4){
          
$d=ord($oc);
          if(
$d==81){
            
$c=chr(184);
          }else if(
$d>=48){
            
$c=chr($d+176);
          }else if(
$d>=16){
            
$c=chr($d+176);
          }else if(
$d==1){
            
$c=chr(168);
          }
          
$out.=$c;

          
$de=true;
        }else if(
ord($c)==0){
          
$out.=$oc;

          
$de=true;
        }else{
          
$out.=$oc;
        }
      }
      
$oc=$c;
    }
    if((!
$de)){
      
$out.=$oc;
    }
    return 
$out;
  }

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28