Родной язык хорошо, но не все его понимают. Решил записать себе на FM-трансмитер немного музыки, и обнаружил, что он не умеет отображать на экране русские символы в именах файлов. Немного почесал репу и понял, что нужно транслитить все названия. Делать это руками как-то нет никакого желания (извините, 300+ треков переименовывать руками – это изврат!). Вот и прихшлось написать простенькую функцию. Задача простая, но решил ее задокументировать, вдруг кому потребуется. Вот 2 варианта:

PHP
Вообще скрипт я писал на Perl, но функция показалась мне весьма полезной, и я решил включить ее в свою библиотеку PHP функций.
function Rus2Lat($msg)
{
$iso = array(
"№"=>"#","«"=>"","»"=>"",
"А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D",
"Е"=>"E","Ё"=>"YO","Ж"=>"ZH",
"З"=>"Z","И"=>"I","Й"=>"J","К"=>"K","Л"=>"L",
"М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R",
"С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"H",
"Ц"=>"C","Ч"=>"CH","Ш"=>"SH","Щ"=>"SH","Ъ"=>"'",
"Ы"=>"Y","Ь"=>"","Э"=>"E","Ю"=>"YU","Я"=>"YA",
"а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d",
"е"=>"e","ё"=>"yo","ж"=>"zh",
"з"=>"z","и"=>"i","й"=>"j","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
"ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"sh","ъ"=>"",
"ы"=>"y","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya"
);
return strtr($msg, $iso);
}

Perl
Ну собвственно вот. Знаю, что получилось немного извращенно, но работает :)
sub Rus2Lat
{
my @chars = split('', shift);
my %iso = (
"№"=>"#","«"=>"","»"=>"",
"А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D",
"Е"=>"E","Ё"=>"YO","Ж"=>"ZH",
"З"=>"Z","И"=>"I","Й"=>"J","К"=>"K","Л"=>"L",
"М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R",
"С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"H",
"Ц"=>"C","Ч"=>"CH","Ш"=>"SH","Щ"=>"SH","Ъ"=>"'",
"Ы"=>"Y","Ь"=>"","Э"=>"E","Ю"=>"YU","Я"=>"YA",
"а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d",
"е"=>"e","ё"=>"yo","ж"=>"zh",
"з"=>"z","и"=>"i","й"=>"j","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
"ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"sh","ъ"=>"",
"ы"=>"y","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya"
);
my $c;
for $c (@chars) { $c = $iso{$c} if(exists($iso{$c})); }
return join('', @chars);
}