там для юникода пару автозамен сделать - 5 минут
вот:
public function UpLow($string,$registr='up'){
$upper_lower = array('А'=>'а','Б'=>'б','В'=>'в','Г'=>'г','Д'=>'д','Е'=>'е','Ё'=>'ё','Ж'=>'ж','З'=>'з','И'=>'и','Й'=>'й','К'=>'к','Л'=>'л','М'=>'м','Н'=>'н','О'=>'о','П'=>'п','Р'=>'р','С'=>'с','Т'=>'т','У'=>'у','Ф'=>'ф','Х'=>'х','Ц'=>'ц','Ч'=>'ч','Ш'=>'ш','Щ'=>'щ','Ъ'=>'ъ','Ы'=>'ы','Ь'=>'ь','Э'=>'э','Ю'=>'ю','Я'=>'я','A'=>'a','B'=>'b','C'=>'c','D'=>'d','E'=>'e','F'=>'f','G'=>'g','H'=>'h','I'=>'i','J'=>'j','K'=>'k','L'=>'l','M'=>'m','N'=>'n','O'=>'o','P'=>'p','Q'=>'q','R'=>'r','S'=>'s','T'=>'t','U'=>'u','V'=>'v','W'=>'w','X'=>'x','Y'=>'y','Z'=>'z');
$lower_upper = array('а'=>'А','б'=>'Б','в'=>'В','г'=>'Г','д'=>'Д','е'=>'Е','ё'=>'Ё','ж'=>'Ж','з'=>'З','и'=>'И','й'=>'Й','к'=>'К','л'=>'Л','м'=>'М','н'=>'Н','о'=>'О','п'=>'П','р'=>'Р','с'=>'С','т'=>'Т','у'=>'У','ф'=>'Ф','х'=>'Х','ц'=>'Ц','ч'=>'Ч','ш'=>'Ш','щ'=>'Щ','ъ'=>'Ъ','ы'=>'Ы','ь'=>'Ь','э'=>'Э','ю'=>'Ю','я'=>'Я','a'=>'A','b'=>'B','c'=>'C','d'=>'D','e'=>'E','f'=>'F','g'=>'G','h'=>'H','i'=>'I','j'=>'J','k'=>'K','l'=>'L','m'=>'M','n'=>'N','o'=>'O','p'=>'P','q'=>'Q','r'=>'R','s'=>'S','t'=>'T','u'=>'U','v'=>'V','w'=>'W','x'=>'X','y'=>'Y','z'=>'Z');
if($registr == 'up') $string = strtr($string,$lower_upper);
else $string = strtr($string,$upper_lower);
return $string;
} //function UpLow(&$string,$registr='up')
public function rus2lat($s) { // Функция обратимой перекодировки кириллицы в транслит.
$s = self::UpLow($s);
//а потом только кириллицу в нижний
//return $s;
$s=str_replace("ЫА","yha",$s);
$s=str_replace("ЫО","yho",$s);
$s=str_replace("ЫУ","yhu",$s);
$s=str_replace("Ё","yo",$s);
$s=str_replace("Ж","zh",$s);
$rus_lat = array('А'=>'a','Б'=>'b','В'=>'v','Г'=>'g','Д'=>'d','Е'=>'e','З'=>'z','И'=>'i','Й'=>'j','К'=>'k','Л'=>'l','М'=>'m','Н'=>'n','О'=>'o','П'=>'p','Р'=>'r','С'=>'s','Т'=>'t','У'=>'u','Ф'=>'f','Х'=>'x','Ц'=>'c');
$s = strtr($s, $rus_lat);
$s=str_replace("Ч","ch",$s);
$s=str_replace("Ш","sh",$s);
$s=str_replace("Щ","shh",$s);
$s=str_replace("Ъ","qh",$s);
$s=str_replace("Ы","y",$s);
$s=str_replace("Ь","q",$s);
$s=str_replace("Э","eh",$s);
$s=str_replace("Ю","yu",$s);
$s=str_replace("Я","ya",$s);
return $s;
} // function rus2lat($s)