Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : String Functions : convert_cyr_string

convert_cyr_string

Convert from one Cyrillic character set to another (PHP 4, PHP 5)
string convert_cyr_string ( string str, string from, string to )


Code Examples / Notes » convert_cyr_string

pavel_bashkatov

To: mihailsbo at lycos dot ru
Transliteration could be done easier:
<?
function transliterate($cyrstr)
{
$ru = array('A', 'a',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?',
'?', '?');
$en = array('A', 'a',
'B', 'b',
'V', 'v',
'G', 'g',
'D', 'd',
'E', 'e',
'E', 'e',
'Zh', 'zh',
'Z', 'z',
'I', 'i',
'J', 'j',
'K', 'k',
'L', 'l',
'M', 'm',
'N', 'n',
'O', 'o',
'P', 'p',
'R', 'r',
'S', 's',
'T', 't',
'U', 'u',
'F', 'f',
'H', 'h',
'C', 'c',
'Ch', 'ch',
'Sh', 'sh',
'Sch', 'sch',
'\'', '\'',
'Y', 'y',
'\'', '\'',
'E', 'e',
'Ju', 'ju',
'Ja', 'ja');
return str_replace($ru, $en, $cyrstr);
}
?>


almi

to convert cyrillic string to UTF-8 you can use icovn() function. It does work!
<?php
echo iconv ('CP1251','UTF-8','some cyr string');
?>
But you should copile your php '--with-iconv=[DIR]'


aeon

threed's function works great, but the replacement for the letter small io (&#1105;) needs to be changed from
<?php
if ($c==184) { $t.=chr(209).chr(209); continue; };
?>
to
<?php
if ($c==184) { $t.=chr(209).chr(145); continue; };
?>
so, the final working result should look like this:
<?php
function win3utf($s) {
  for($i=0, $m=strlen($s); $i<$m; $i++)    {
      $c=ord($s[$i]);
      if ($c<=127) {$t.=chr($c); continue; }
      if ($c>=192 && $c<=207) {$t.=chr(208).chr($c-48); continue; }
      if ($c>=208 && $c<=239) {$t.=chr(208).chr($c-48); continue; }
      if ($c>=240 && $c<=255) {$t.=chr(209).chr($c-112); continue; }
      if ($c==184) { $t.=chr(209).chr(209); continue; };
      if ($c==168) { $t.=chr(208).chr(129); continue; };
  }
  return $t;
}
?>


mitya

there is a little script that convert  utf to cp1251
<?php
function u8($win,$h,$t) {
 global $w8;
 $w8[chr($h).chr($t)] = $win;
}
$c1 = chr(208);
$c2 = chr(209);
u8("é",208,185); u8("ö",209,134); u8("ó",209,131);
u8("ê",208,186); u8("å",208,181); u8("í",208,189);
u8("ã",208,179); u8("ø",209,136); u8("ù",209,137);
u8("ç",208,183); u8("õ",209,133); u8("ú",209,138);
u8("ô",209,132); u8("û",209,139); u8("â",208,178);
u8("à",208,176); u8("ï",208,191); u8("ð",209,128);
u8("î",208,190); u8("ë",208,187); u8("ä",208,180);
u8("æ",208,182); u8("ý",209,141); u8("ÿ",209,143);
u8("÷",209,135); u8("ñ",209,129); u8("ì",208,188);
u8("è",208,184); u8("ò",209,130); u8("ü",209,140);
u8("á",208,177); u8("þ",209,142); u8("É",208,153);
u8("Ö",208,166); u8("Ó",208,163); u8("Ê",208,154);
u8("Å",208,149); u8("Í",208,157); u8("Ã",208,147);
u8("Ø",208,168); u8("Ù",208,169); u8("Ç",208,151);
u8("Õ",208,165); u8("Ú",208,170); u8("Ô",208,164);
u8("Û",208,171); u8("Â",208,146); u8("À",208,144);
u8("Ï",208,159); u8("Ð",208,160); u8("Î",208,158);
u8("Ë",208,155); u8("Ä",208,148); u8("Æ",208,150);
u8("Ý",208,173); u8("ß",208,175); u8("×",208,167);
u8("Ñ",208,161); u8("Ì",208,156); u8("È",208,152);
u8("Ò",208,162); u8("Ü",208,172); u8("Á",208,145);
u8("Þ",208,174); u8("¸",209,145); u8("¨",208,129);
function utf2win ($text) {
 global $c1,$c2,$w8;
 $u = false;
 $temp = "";
 for($i=0,$len=strlen($text); $i<$len; $i++) {
   $c = substr($text,$i,1);
   if ($u) {
     $c = $w8[$lc.$c];
     $temp .= isset($c)?$c:"?";
     $u = false;
   }
   else if ($c==$c1 || $c==$c2) {
     $u = true;
     $lc = $c;
   }
   else
     $temp .= $c;
 }
 return $temp;
}
$text = file("utf8.txt");
foreach($text as $line)
 echo "
".utf2win($line);
?>
how it works you can see on http://www.alesh.ru/lj
But there is another function iconv() (http://php.net/iconv) but not all hosters support iconv


zehyaat yandex dotru

Sorry for my previous post. NOT array_reverce, array_flip is actual function. Correct function:
function Encode($str,$type=u)
{
$conv=array();
for($x=192;$x<=239;$x++)
$conv[u][chr($x)]=chr(208).chr($x-48);
for($x=240;$x<=255;$x++)
$conv[u][chr($x)]=chr(209).chr($x-112);
$conv[u][chr(168)]=chr(208).chr(129);
$conv[u][chr(184)]=chr(209).chr(209);
$conv[w]=array_flip($conv[u]);
if($type=='w' || $type=='u')
return strtr($str,$conv[$type]);
else
return $str;
}
Sorry for my English ;)


sidor
Sorry for my English
100% worked function for convertion string to utf-8. In this implementation support main cyrilic encodings (cp1251, koi8-r, cp866, mac) For supporting another codepages - just add needed codepage in $recode array (codes in UCS-4. Add just second part of codetable). Second argument for this function for cyrilic codepages - like in convert_cyr_string function ('k','w','a','d','m')
Writed in accordance with rfc2279
Created by Andrey A Sidorenko aka sidor
http://sidor.nnov.ru/str2utf.txt


checat

See also more general
http://www.php.net/manual/ref.iconv.php iconv functions (standart in last glibc) and
http://www.php.net/manual/ref.recode.php Recode functions


german

previous bit of code (grmaxim's win_to_utf8 function) didn't work for me, so I wrote my own func to convert from win1251 to utf8:
<?php
function win2utf($s) {
   for($i=0,$m=strlen($s);$i<$m;$i++) {
       $c=ord($s[$i]);
       if ($c>127) // convert only special chars
           if     ($c==184) $t.=chr(209).chr(209); // small io
           elseif ($c==168) $t.=chr(208).chr(129); // capital io
           else              $t.=($c>239?chr(209):chr(208)).chr($c-48);
       else $t.=$s[$i];
   }
   return $t;
}
?>
Hope this helps


cathody

Praising other people for their efforts to write a convenient UTF8 to Win-1251 functions may I mention that, since str_replace allows arrays as parameters, the function may be rewritten in a slightly efficient way (moreover, the array generated may be stored for performance improvement):
<?php
function Encode ( $str, $type )
{
// $type:
// 'w' - encodes from UTF to win
// 'u' - encodes from win to UTF
   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;
 }
?>


sote korveziroski

Only this code works OK for me, for translating win-1251 to utf-8 for macedonian letters!
// Modificated by tapin13
// Corrected by Timuretis
// Corrected by Sote for macedonian cyrillic
// Convert win-1251 to utf-8
function unicode_mk_cyr($str) {
    $encode = "";
    for ($ii=0;$ii<strlen($str);$ii++) {
        $xchr=substr($str,$ii,1);
        echo "

".ord($xchr)."\n";
        if (ord($xchr)>191) {
            $xchr=ord($xchr)+848;
            $xchr="&#" . $xchr . ";";
        }
        if(ord($xchr) == 129) {
              $xchr = "&#1027;";
        }
        if(ord($xchr) == 163) {
              $xchr = "&#1032;";
        }      
        if(ord($xchr) == 138) {
              $xchr = "&#1033;";
        }
        if(ord($xchr) == 140) {
              $xchr = "&#1034;";
        }
        if(ord($xchr) == 143) {
              $xchr = "&#1039;";
        }
        if(ord($xchr) == 141) {
              $xchr = "&#1036;";
        }
        if(ord($xchr) == 189) {
              $xchr = "&#1029;";
        }
   
        if(ord($xchr) == 188) {
              $xchr = "&#1112;";
        }
        if(ord($xchr) == 131) {
              $xchr = "&#1107;";
        }
        if(ord($xchr) == 190) {
              $xchr = "&#1109;";
        }
        if(ord($xchr) == 154) {
              $xchr = "&#1113;";
        }
        if(ord($xchr) == 156) {
              $xchr = "&#1114;";
        }
        if(ord($xchr) == 159) {
              $xchr = "&#1119;";
        }
        if(ord($xchr) == 157) {
              $xchr = "&#1116;";
        }        
        $encode=$encode . $xchr;
  }
    return $encode;
}


spam

Not all types. there are some sites that support UTF-8.
http://www.alesh.ru


mokvas

Not all of cyrilic characters are supported by this function. Cyrilic chars from Macedonian Alphabet like Sh, kj, dz' ,nj are not supported.

info

Most useful conversion class is here http://mikolajj.republika.pl/
recommended for all


threed

i tried all functions here to convert from cp1251 to unicode, but they don't work. i think that this work :
<?php
function win3utf($s) {
for($i=0, $m=strlen($s); $i<$m; $i++) {
$c=ord($s[$i]);
if ($c<=127) {$t.=chr($c); continue; }
if ($c>=192 && $c<=207) {$t.=chr(208).chr($c-48); continue; }
if ($c>=208 && $c<=239) {$t.=chr(208).chr($c-48); continue; }
if ($c>=240 && $c<=255) {$t.=chr(209).chr($c-112); continue; }
if ($c==184) { $t.=chr(209).chr(209); continue; };
   if ($c==168) { $t.=chr(208).chr(129);  continue; };
}
return $t;
}
?>


artyomch

I needed a code for taking UTF8 encoded string from DB and printing it in Win1251 encoded HTML. The problem was that I had to print not just english & cyrillic characters, but all characters stored in UTF encoded string (in my case the DB contained english, russian & hebrew characters).
After reading carefully the UTF8 manual, I've written the following code, that converts all non-win1251 characters into html entities (&#XXXX;).
function utf8_2_win1251 ($str_src)
{
   $str_dst = "";
   $i      = 0;
   while ($i<strlen($str_src))
   {
       $code_dst  = 0;
       $code_src1 = ord($str_src[$i]);
       $i++;
       if ($code_src1<=127)
       {
           $str_dst .= chr($code_src1);
           continue;
       }
       else
       if (($code_src1 & 0xE0) == 0xC0)
       {
           $code_src2 = ord($str_src[$i++]);
           if (($code_src2 & 0xC0) != 0x80)
               continue;
           $code_dst = ( ($code_src1 & 0x1F) << 6) + ($code_src2 & 0x3F);
       }
       else
       if (($code_src1 & 0xF0) == 0xE0)
       {
           $code_src2 = ord($str_src[$i++]);
           if (($code_src2 & 0xC0) != 0x80)
               continue;
           $code_src3 = ord($str_src[$i++]);
           if (($code_src3 & 0xC0) != 0x80)
               continue;
           $code_dst = ( ($code_src1 & 0x1F) << 12) + ( ($code_src2 & 0x3F) << 6) + ($code_src3 & 0x3F);
       }
       else
       if (($code_src1 & 0xF8) == 0xF0)
       {
           $code_src2 = ord($str_src[$i++]);
           if (($code_src2 & 0xC0) != 0x80)
               continue;
           $code_src3 = ord($str_src[$i++]);
           if (($code_src3 & 0xC0) != 0x80)
               continue;
           $code_src4 = ord($str_src[$i++]);
           if (($code_src4 & 0xC0) != 0x80)
               continue;
           $code_dst = ( ($code_src1 & 0x1F) << 18) + ( ($code_src2 & 0x3F) << 12) + ( ($code_src3 & 0x3F) << 6) + ($code_src4 & 0x3F);
       }
       else
       {
           continue;
       }
       
       if ($code_dst)
       {
           if ($code_dst==0x401)
           {
               $str_dst .= "¨";
           }
           else
           if ($code_dst==0x451)
           {
               $str_dst .= "¸";
           }
           else
           if ( ($code_dst>=0x410) && ($code_dst<=0x44F) )
           {
               $str_dst .= chr ($code_dst-848);
           }
           else
               $str_dst .= "&#{$code_dst};";
       }
   }
   return $str_dst;
}


grmaxim

I hope it to you we shall help
<?php
function win_to_utf8($str){
$str = convert_cyr_string($str, 'w','i'); // w - windows-1251   to  i - iso8859-5
$str = utf8_encode ($str); //  iso8859-5   to  utf8
return $str;
}
function utf8_to_win($str){
$str = utf8_decode ($str); //  utf8 to iso8859-5  
$str = convert_cyr_string($str, 'i','w'); // w - windows-1251   to  i - iso8859-5
return $str;
}
?>
If there are questions - shall help. Good luck friends!!!


sote korveziroski

I have made mistake remove this test line:
        echo "

".ord($xchr)."\n";
code should be like this:
// Modificated by tapin13
// Corrected by Timuretis
// Corrected by Sote for macedonian cyrillic
// Convert win-1251 to utf-8
function unicode_mk_cyr($str) {
    $encode = "";
    for ($ii=0;$ii<strlen($str);$ii++) {
        $xchr=substr($str,$ii,1);
        if (ord($xchr)>191) {
            $xchr=ord($xchr)+848;
            $xchr="&#" . $xchr . ";";
        }
        if(ord($xchr) == 129) {
              $xchr = "&#1027;";
        }
        if(ord($xchr) == 163) {
              $xchr = "&#1032;";
        }    
        if(ord($xchr) == 138) {
              $xchr = "&#1033;";
        }
        if(ord($xchr) == 140) {
              $xchr = "&#1034;";
        }
        if(ord($xchr) == 143) {
              $xchr = "&#1039;";
        }
        if(ord($xchr) == 141) {
              $xchr = "&#1036;";
        }  
        if(ord($xchr) == 189) {
              $xchr = "&#1029;";
        }                              
         
        if(ord($xchr) == 188) {
              $xchr = "&#1112;";
        }
        if(ord($xchr) == 131) {
              $xchr = "&#1107;";
        }
        if(ord($xchr) == 190) {
              $xchr = "&#1109;";
        }
        if(ord($xchr) == 154) {
              $xchr = "&#1113;";
        }
        if(ord($xchr) == 156) {
              $xchr = "&#1114;";
        }
        if(ord($xchr) == 159) {
              $xchr = "&#1119;";
        }
        if(ord($xchr) == 157) {
              $xchr = "&#1116;";
        }                                                  
        $encode=$encode . $xchr;
  }
    return $encode;
}


webmaster

Here's a WORKING function to convert from UTF-8 to Windows-1251, if your hosting provider does not support iconv
<?php
for ($c=0;$c<strlen($s);$c++){
$i=ord($s[$c]);
if ($i<=127) $out.=$s[$c];
if ($byte2){
$new_c2=($c1&3)*64+($i&63);
$new_c1=($c1>>2)&5;
$new_i=$new_c1*256+$new_c2;
if ($new_i==1025){
$out_i=168;
} else {
if ($new_i==1105){
$out_i=184;
} else {
$out_i=$new_i-848;
}
}
$out.=chr($out_i);
$byte2=false;
}
if (($i>>5)==6) {
$c1=$i;
$byte2=true;
}
}
return $out;
}
?>


standov

He is improved function to decode win1251->UTF8
<?php
function win2utf($s){
$c209 = chr(209); $c208 = chr(208); $c129 = chr(129);
for($i=0; $i<strlen($s); $i++)    {
$c=ord($s[$i]);
if ($c>=192 and $c<=239) $t.=$c208.chr($c-48);
elseif ($c>239) $t.=$c209.chr($c-112);
elseif ($c==184) $t.=$c209.$c209;
elseif ($c==168)    $t.=$c208.$c129;
else $t.=$s[$i];
}
return $t;
}
?>


felix

Check this code -- exelent to convert win-1251 to UTF-8
just one fix!!!
      if ($c==184) { $t.=chr(209).chr(145); continue; };
Anything more it is not necessary.
It is grateful to threed [at] koralsoft.com
28-Jul-2003 03:37
i tried all functions here to convert from cp1251 to unicode, but they don't work. i think that this work :
<?php
function win3utf($s)    {
  for($i=0, $m=strlen($s); $i<$m; $i++)    {
      $c=ord($s[$i]);
      if ($c<=127) {$t.=chr($c); continue; }
      if ($c>=192 && $c<=207)    {$t.=chr(208).chr($c-48); continue; }
      if ($c>=208 && $c<=239) {$t.=chr(208).chr($c-48); continue; }
      if ($c>=240 && $c<=255) {$t.=chr(209).chr($c-112); continue; }
      if ($c==184) { $t.=chr(209).chr(209); continue; };
  if ($c==168) { $t.=chr(208).chr(129);  continue; };
  }
  return $t;
}
?>


zehya

cathody at mail dot ru(27-Jul-2005 06:41)
You function doesn't work on my PC..
It's work:
function Encode2($str,$type)
{
$conv=array();
for($x=192;$x<=239;$x++)
$conv[u][chr($x)]=chr(208).chr($x-48);
for($x=240;$x<=255;$x++)
$conv[u][chr($x)]=chr(209).chr($x-112);
$conv[u][chr(168)]=chr(208).chr(129);
$conv[u][chr(184)]=chr(209).chr(209);
$conv[w]=array_reverse($conv[u]);
if($type=='w' || $type=='u')
return strtr($str,$conv[$type]);
else
return $str;
}


vasyl skotona

A better function to convert cp1251 string to utf8.
Works with russian and ukrainian text.
function unicod($str) {
$conv=array();
for($x=128;$x<=143;$x++) $conv[$x+112]=chr(209).chr($x);
for($x=144;$x<=191;$x++) $conv[$x+48]=chr(208).chr($x);
$conv[184]=chr(209).chr(145); #Ñ‘
$conv[168]=chr(208).chr(129); #Ё
$conv[179]=chr(209).chr(150); #Ñ–
$conv[178]=chr(208).chr(134); #І
$conv[191]=chr(209).chr(151); #Ñ—
$conv[175]=chr(208).chr(135); #Ñ—
$conv[186]=chr(209).chr(148); #Ñ”
$conv[170]=chr(208).chr(132); #Є
$conv[180]=chr(210).chr(145); #Ò‘
$conv[165]=chr(210).chr(144); #Ґ
$conv[184]=chr(209).chr(145); #Ґ
$ar=str_split($str);
foreach($ar as $b) if(isset($conv[ord($b)])) $nstr.=$conv[ord($b)]; else $nstr.=$b;
return $nstr;
}


apoc

:) what about NUMBER!!!???
function Utf8Win($str,$type="w")
{
static $conv='';
if (!is_array($conv))
{
$conv = array();
for($x=128;$x<=143;$x++)
{
$conv['u'][]=chr(209).chr($x);
$conv['w'][]=chr($x+112);
}
for($x=144;$x<=191;$x++)
{
$conv['u'][]=chr(208).chr($x);
$conv['w'][]=chr($x+48);
}
$conv['u'][]=chr(208).chr(129); // Ё
$conv['w'][]=chr(168);
$conv['u'][]=chr(209).chr(145); // Ñ‘
$conv['w'][]=chr(184);
$conv['u'][]=chr(208).chr(135); // Ї
$conv['w'][]=chr(175);
$conv['u'][]=chr(209).chr(151); // Ñ—
$conv['w'][]=chr(191);
$conv['u'][]=chr(208).chr(134); // І
$conv['w'][]=chr(178);
$conv['u'][]=chr(209).chr(150); // Ñ–
$conv['w'][]=chr(179);
$conv['u'][]=chr(210).chr(144); // Ґ
$conv['w'][]=chr(165);
$conv['u'][]=chr(210).chr(145); // Ò‘
$conv['w'][]=chr(180);
$conv['u'][]=chr(208).chr(132); // Є
$conv['w'][]=chr(170);
$conv['u'][]=chr(209).chr(148); // Ñ”
$conv['w'][]=chr(186);
$conv['u'][]=chr(226).chr(132).chr(150); // â„–
$conv['w'][]=chr(185);
}
if ($type == 'w') { return str_replace($conv['u'],$conv['w'],$str); }
elseif ($type == 'u') { return str_replace($conv['w'], $conv['u'],$str); }
else { return $str; }
}


webmaster

//I've also built the same way for hebrew to utf converting
function heb2utf($s) {
for($i=0, $m=strlen($s); $i<$m; $i++)    {
      $c=ord($s[$i]);
      if ($c<=127) {$t.=chr($c); continue; }
      if ($c>=224 )    {$t.=chr(215).chr($c-80); continue; }
   
  }
return $t;
}
//Simple unicoder and decoder for hebrew and russian:
function unicode_hebrew($str) {
for ($ii=0;$ii<strlen($str);$ii++) {
$xchr=substr($str,$ii,1);
if (ord($xchr)>223) {
$xchr=ord($xchr)+1264;
$xchr="&#" . $xchr . ";";
}
$encode=$encode . $xchr;
}
return $encode;
}
function unicode_russian($str) {
for ($ii=0;$ii<strlen($str);$ii++) {
$xchr=substr($str,$ii,1);
if (ord($xchr)>191) {
$xchr=ord($xchr)+848;
$xchr="&#" . $xchr . ";";
}
$encode=$encode . $xchr;
}
return $encode;
}
function decode_unicoded_hebrew($str) {
$decode="";
$ar=split("&#",$str);
foreach ($ar as $value ) {
   $in1=strpos($value,";"); //end of code
   if ($in1>0) {// unicode
    $code=substr($value,0,$in1);
     
    if ($code>=1456 and $code<=1514) { //hebrew
      $code=$code-1264;
   $xchr=chr($code);
      } else { //other unicode
   $xchr="&#" . $code . ";";
   }
$xchr=$xchr . substr($value,$in1+1);  
   } else //not unicode
         $xchr = $value;

    $decode=$decode . $xchr;
   }
return $decode;
}
function decode_unicoded_russian($str) {
$decode="";
$ar=split("&#",$str);
foreach ($ar as $value ) {
   $in1=strpos($value,";"); //end of code
   if ($in1>0) {// unicode
    $code=substr($value,0,$in1);
     
    if ($code>=1040 and $code<=1103) {
      $code=$code-848;
   $xchr=chr($code);
      } else {
   $xchr="&#" . $code . ";";
   }
$xchr=$xchr . substr($value,$in1+1);  
   } else
         $xchr = $value;

    $decode=$decode . $xchr;
   }
return $decode;
}


timuretis

// Modificated by tapin13
// Corrected by Timuretis
// Convert win-1251 to utf-8
function unicode_russian($str) {
    $encode = "";
//    1025 = "&#1025;";
//    1105 = "&#1105;";
    for ($ii=0;$ii<strlen($str);$ii++) {
        $xchr=substr($str,$ii,1);
        if (ord($xchr)>191) {
            $xchr=ord($xchr)+848;
            $xchr="&#" . $xchr . ";";
        }
        if(ord($xchr) == 168) {
//             $xchr = "&#1025";
              $xchr = "&#1025;"; //!!!!!!!!!!!!!!!!!!!!!!!
        }
        if(ord($xchr) == 184) {
//             $xchr = "&#1105";
              $xchr = "&#1105;"; //!!!!!!!!!!!!!!!!!!!!!!
        }
        $encode=$encode . $xchr;
  }
    return $encode;
}


tapin13

// Modificated by tapin13
// Convert win-1251 to utf-8
function unicode_russian($str) {
$encode = "";
// 1025 = "&#1025;";
// 1105 = "&#1105;";
for ($ii=0;$ii<strlen($str);$ii++) {
$xchr=substr($str,$ii,1);
if (ord($xchr)>191) {
$xchr=ord($xchr)+848;
$xchr="&#" . $xchr . ";";
}
if(ord($xchr) == 168) {
$xchr = "&#1025";
}
if(ord($xchr) == 184) {
$xchr = "&#1105";
}
$encode=$encode . $xchr;
}
return $encode;
}


mihailsbo

<?php
// Here is a function that may be useful if you wish
// to convert cyrillic text (windows-1251) to english
// letters (e.g. for sending to a cell phone)
function transliterate( $text )
{
 $cyrlet = 'ÀÁÂÃÄŨÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß'.
           'àáâãäå¸æçèéêëìíîïðñòóôõö÷øùúûüýþÿ';
 $englet = 'ABVGD   ZIJKLMNOPRSTUFHC   `Y`E  '.
           'abvgd   zijklmnoprstufhc   `y`e  ';
 $result = '';
 for ( $i=0; $i<strlen($text); $i++ ) {
   $c1 = $text[ $i ];
   $p1 = strpos( $cyrlet, $c1 );
   if ( $p1 === FALSE ) { $result .= $c1; continue; }
   $ct = $englet[ $p1 ];
   if ( $ct != ' ' ) { $result .= $ct; continue; }
   switch ( $c1 )
   {
     case 'Å':
       $ct = 'Je';
       break;
     case 'å':
       $ct = 'e';
       break;
     case '¨':
       $ct = 'Jo';
       break;
     case '¸':
       $ct = 'jo';
       break;
     case 'Æ':
       $ct = 'Zh';
       break;
     case 'æ':
       $ct = 'zh';
       break;
     case '×':
       $ct = 'Ch';
       break;
     case '÷':
       $ct = 'ch';
       break;
     case 'Ø':
       $ct = 'Sh';
       break;
     case 'ø':
       $ct = 'sh';
       break;
     case 'Ù':
       $ct = 'Sch';
       break;
     case 'ù':
       $ct = 'sch';
       break;
     case 'Þ':
       $ct = 'Ju';
       break;
     case 'þ':
       $ct = 'ju';
       break;
     case 'ß':
       $ct = 'Ja';
       break;
     case 'ÿ':
       $ct = 'ja';
       break;
     default:
       $ct = '?';
   }
   $result .= $ct;
 }
 return $result;
}
?>
// P.S. Thanks to PHP developers for rich and convenient
// programming language!


Change Language


Follow Navioo On Twitter
addcslashes
addslashes
bin2hex
chop
chr
chunk_split
convert_cyr_string
convert_uudecode
convert_uuencode
count_chars
crc32
crypt
echo
explode
fprintf
get_html_translation_table
hebrev
hebrevc
html_entity_decode
htmlentities
htmlspecialchars_decode
htmlspecialchars
implode
join
levenshtein
localeconv
ltrim
md5_file
md5
metaphone
money_format
nl_langinfo
nl2br
number_format
ord
parse_str
print
printf
quoted_printable_decode
quotemeta
rtrim
setlocale
sha1_file
sha1
similar_text
soundex
sprintf
sscanf
str_getcsv
str_ireplace
str_pad
str_repeat
str_replace
str_rot13
str_shuffle
str_split
str_word_count
strcasecmp
strchr
strcmp
strcoll
strcspn
strip_tags
stripcslashes
stripos
stripslashes
stristr
strlen
strnatcasecmp
strnatcmp
strncasecmp
strncmp
strpbrk
strpos
strrchr
strrev
strripos
strrpos
strspn
strstr
strtok
strtolower
strtoupper
strtr
substr_compare
substr_count
substr_replace
substr
trim
ucfirst
ucwords
vfprintf
vprintf
vsprintf
wordwrap
eXTReMe Tracker