I live ExBB and CMS Limbo! » » PHP » UTF8 Windows-1251

(1): [1]
 

1. - 17 2018 — 15:34 -
PHP:
function cp1251_utf8($string)
{
$out = '';
for ($i = 0; $i<strlen($string); ++$i)
{
$ch = ord($string{$i});
if ($ch < 0x80)
{$out .= chr($ch);}
else
{
if ($ch >= 0xC0)
{
if ($ch < 0xF0) $out .= "\xD0".chr(0x90 + $ch - 0xC0); // -, - (A-YA, a-p)
else $out .= "\xD1".chr(0x80 + $ch - 0xF0); // - (r-ya)
}
else
{
switch($ch)
{
case 0xA8: $out .= "\xD0\x81"; break; // YO
case 0xB8: $out .= "\xD1\x91"; break; // yo
// belorussain and ukrainian
case 0xA1: $out .= "\xD0\x8E"; break; // (U)
case 0xA2: $out .= "\xD1\x9E"; break; // (u)
case 0xAA: $out .= "\xD0\x84"; break; // (e)
case 0xAF: $out .= "\xD0\x87"; break; // (I..)
case 0xB2: $out .= "\xD0\x86"; break; // I (I)
case 0xB3: $out .= "\xD1\x96"; break; // i (i)
case 0xBA: $out .= "\xD1\x94"; break; // (e)
case 0xBF: $out .= "\xD1\x97"; break; // (i..)
}
}
}
}
return $out;
}


PHP:
function toWindows1251($str) 
{
if (is_numeric($str)) {return $str;}
if (($converted = iconv('UTF-8', 'Windows-1251//IGNORE', $str)) !== false) {return $converted;}
static $utfToWin = array('А'=>'', 'Б'=>'', 'В'=>'', 'Г'=>'', 'Д'=>'', 'Е'=>'', 'Ё'=>'', 'Ж'=>'', 'З'=>'', '?'=>'', 'Й'=>'', 'К'=>'', 'Л'=>'',
'М'=>'', 'Н'=>'', 'О'=>'', 'П'=>'', 'Р'=>'', 'С'=>'', 'Т'=>'', 'У'=>'', 'Ф'=>'', 'Х'=>'', 'Ц'=>'', 'Ч'=>'', 'Ш'=>'',
'Щ'=>'', 'Ъ'=>'', 'Ы'=>'', 'Ь'=>'', 'Э'=>'', 'Ю'=>'', 'Я'=>'', 'І'=>'', 'Ў'=>'', 'Ґ'=>'', 'Є'=>'', 'Ї'=>'', 'а'=>'',
'б'=>'', 'в'=>'', 'г'=>'', 'д'=>'', 'е'=>'', 'ё'=>'', 'ж'=>'', 'з'=>'', 'и'=>'', 'й'=>'', 'к'=>'', 'л'=>'', 'м'=>'',
'н'=>'', 'о'=>'', 'п'=>'', 'р'=>'', 'с'=>'', 'т'=>'', 'у'=>'', 'ф'=>'', 'х'=>'', 'ц'=>'', 'ч'=>'', 'ш'=>'', 'щ'=>'',
'ъ'=>'', 'ы'=>'', 'ь'=>'', 'э'=>'', 'ю'=>'', 'я'=>'', 'і'=>'', 'ў'=>'', 'ґ'=>'', 'є'=>'', 'ї'=>'');
return strtr($str, $utfToWin);
}


PHP:
function toUtf8($str) 
{
if (is_numeric($str)) {return $str;}
if (($converted = iconv('Windows-1251', 'UTF-8', $str)) === false)
{
static $winToUtf = array(''=>'А', ''=>'Б', ''=>'В', ''=>'Г', ''=>'Д', ''=>'Е', ''=>'Ё', ''=>'Ж', ''=>'З', ''=>'?', ''=>'Й', ''=>'К', ''=>'Л',
''=>'М', ''=>'Н', ''=>'О', ''=>'П', ''=>'Р', ''=>'С', ''=>'Т', ''=>'У', ''=>'Ф', ''=>'Х', ''=>'Ц', ''=>'Ч', ''=>'Ш',
''=>'Щ', ''=>'Ъ', ''=>'Ы', ''=>'Ь', ''=>'Э', ''=>'Ю', ''=>'Я', ''=>'І', ''=>'Ў', ''=>'Ґ', ''=>'Є', ''=>'Ї', ''=>'а',
''=>'б', ''=>'в', ''=>'г', ''=>'д', ''=>'е', ''=>'ё', ''=>'ж', ''=>'з', ''=>'и', ''=>'й', ''=>'к', ''=>'л', ''=>'м',
''=>'н', ''=>'о', ''=>'п', ''=>'р', ''=>'с', ''=>'т', ''=>'у', ''=>'ф', ''=>'х', ''=>'ц', ''=>'ч', ''=>'ш', ''=>'щ',
''=>'ъ', ''=>'ы', ''=>'ь', ''=>'э', ''=>'ю', ''=>'я', ''=>'і', ''=>'ў', ''=>'ґ', ''=>'є', ''=>'ї');
$converted = strtr($str, $winToUtf);
}
return $converted;
}

Powered by ExBB v1.1.180311