Следующий код содержит алгоритмы транслитерации русских букв в латиницу не зависимо от того этот текст в кодировке UTF-8 или ANSI. "a",225=>"b",226=>"v",227=>"g",228=>"d",229=>"e",230=>"zh",231=>"z",232=>"i",233=>"y",234=>"k",235=>"l",236=>"m",237=>"n",238=>"o",239=>"p",240=>"r",241=>"s",242=>"t",243=>"u",244=>"f",245=>"kh",246=>"ts",247=>"ch",248=>"sh",249=>"shch",250=>"",251=>"y",252=>"",253=>"e",254=>"yu",255=>"ya"); $textLen = strlen($text); $replacesKeysAr = array_keys($replacesAr);var_dump($textLen); $result = "";var_dump($textLen); for ($i=0;$i<$textLen;$i++) { if (in_array(($ord = ord($char = substr($text,$i,1))),$replacesKeysAr)) { $result .= $replacesAr[$ord]; } else { $result .= $char; } } return $result; } return false; } function myTranslite($name="") { $arParams = array("max_len" => "90",// обрезаем символьный код до 60 символов\r\n "change_case" => "L",//приводим к нижнему регистру "replace_space" => "-",//меняем пробелы на тире "replace_other" => "",//меняем плохие символы на ничто "delete_repeat_replace" => "true",//удаляем повторяющиеся тире "use_google" => "false",//отключаем использование google ); return Cutil::translit($name,"ru",$arParams); } $ruNotConvert = "й1ц1у1к1е1н1г1ш1щ1з1х1ъ1ф1ы1в1а1п1р1о1л1д1ж1э1я1ч1с1м1и1т1ь1б1ю"; //echo $ruNotConvert; echo myReplace(convToAnsi("Пробую транслитерировать текст!!!")); $ru = convToAnsi($ruNotConvert); echo myReplace($ru);exit; $ruAr = explode("1",$ru); $lat = myTranslite($ru); $latAr = explode("1",$lat); var_dump($ruAr);var_dump($latAr); foreach ($ruAr as $key=>$element) { echo ord($element) . "=>\"" . $latArReplace[$key] . "\","; }