Транслит нестандартных символов

ruskam2

Новичок
Про транслитерацию кириллицы в латиницу написано много. На этом форуме тоже куча функций.
А вот как перевести в латиницу, скажем такие вот символы:

é
ø
ó
á
------------------------
Задача следующая. Есть много переменных, в которых встречаются слова на разных языках: немецкий, чешский, шведский и т.д.
в каждом языке есть свои спец. символы.
Допустим известно какие именно символы нужно заменить, но не известно какой локали они принадлежат.
Если составить ф-ю, вот таким способом:
-------------------------------
"é"=>"e","ø"=>"o","ó"=>"o","á"=>"a",
"ñ" => "n", "é" => "e",
--------------------------------
Ну что все эти символы находятся в одной ф-ии, то она не срабатывает. Подозреваю, что из-за того, что они из разных локалей.
Есть ли какое-то решение, чтобы всю эту абрукодабру заменить латинскими символами.

Спасибо.
 

artoodetoo

великий и ужасный
Локаль это из другой оперы слово. Наверное виновата кодировка вашего исходного файла. Или функция косячная: покажите её, может быть мы увидим проблему.
 

ruskam2

Новичок
Ф-я не косячная, вот:
function translate($str)
{
$tr = array(
"é"=>"e","ø"=>"o","ó"=>"o","á"=>"a",
"ñ" => "n", "é" => "e", "є"=> "ye", "Є" => "YE"
);
return strtr($str,$tr);
}
$text="éøóá";
echo translate($text);
 

weregod

unserializer
@ruskam2, сохраните файл с ф-цией в кодировке UTF-8, будет счастье, всё там работает
и замечание про локаль не пропустите
 

Andkorol

Новичок
PHP:
$ php -a
Interactive shell

php > function translate($str){ $tr = array("é"=>"e","ø"=>"o","ó"=>"o","á"=>"a","ñ" => "n", "é" => "e", "є"=> "ye", "Є" => "YE"); return strtr($str,$tr); }
php > $text="éøóá";
php > echo $text;
éøóá
php > echo translate($text);
eooa
php >
 

WMix

герр M:)ller
Партнер клуба
хоть понимаешь что "ø"=>"o" равносильно "ё" => "о"
жил был ожик
 

artoodetoo

великий и ужасный
Функция рабочая, я проверил :) Если у вас с ней проблемы, значит вы её смотрите не в той кодировке, в какой используете.
 
Сверху