Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Транслитерация, utf8  
:(
    Опции темы
AlexanderI
Дата 6.6.2014, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 9.7.2004

Репутация: 2
Всего: 3



Здравствуйте.

Есть файл XML (utf8). Нужные значения из него я получаю через XML::Simple функция XMLin().
Русские слова (кирилица) получаются вот такие \x{420}\x{43e}\x{434}\x{438}\x{442}\x{435}\x{43b}\x{44c}

Мне нужно сделать транслитерацию этого слова (\x{41e}\x{442}\x{447}\x{435}\x{442}).


Функция через которую я делаю транслитерацию выводит каракули. 

_kir2tr('переменная');

Пробывал добавлять

Код

encode('utf8','переменная');


тоже самое, только другие каракули. 

Добавлял use utf8; тоже самое.




Код

sub _kir2tr {

$_=$_[0]||''; 

s/ж/zh/g; 
s/Ж/Zh/gi; 
s/ч/ch/g; 
s/Ч/Ch/gi; 
s/ш/sh/g; s/Ш/Sh/gi; s/щ/sch/g; s/Щ/Sch/gi; s/ю/yu/g; s/Ю/Yu/gi; s/я/ya/g; s/Я/Ya/gi; 

tr/абвгдеёзийклмнопрстуфхцъыьэ/abvgdeezijklmnoprstufhc'y'e/; 
tr/АБВГДЕЁЗИЙКЛМНОПРСТУФХЦЪЫЬЭ/ABVGDEEZIJKLMNOPRSTUFHC'Y'E/; 
return $_;

}


--------------------
Магазин детских игрушек  | Авто ВАЗ
PM MAIL   Вверх
arto
Дата 6.6.2014, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



# perl -MLingua::Translit -CSA -le '$a = "\x{420}\x{43e}\x{434}\x{438}\x{442}\x{435}\x{43b}\x{44c}"; print $a; print Lingua::Translit->new("GOST 7.79 RUS")->translit($a)'
Родитель
Roditel`
#
PM MAIL ICQ   Вверх
AlexanderI
Дата 6.6.2014, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 9.7.2004

Репутация: 2
Всего: 3




Немогу установить модуль Lingua::Translit.

Есть ли ещё какой-нибудь способ ?
--------------------
Магазин детских игрушек  | Авто ВАЗ
PM MAIL   Вверх
arto
Дата 6.6.2014, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



# perl -Mcharnames=:full -CS -le '%a = ("\N{CYRILLIC SMALL LETTER ER}" => "r", "\N{CYRILLIC SMALL LETTER O}" => "o", "\N{CYRILLIC SMALL LETTER DE}" => "d", "\N{CYRILLIC SMALL LETTER I}" => "i", "\N{CYRILLIC SMALL LETTER TE}" => t, "\N{CYRILLIC SMALL LETTER E}" => "e", "\N{CYRILLIC SMALL LETTER EL}" => "l", "\N{CYRILLIC SMALL LETTER SOFT SIGN}" => "x"); $a = "\x{440}\x{43e}\x{434}\x{438}\x{442}\x{435}\x{43b}\x{44c}"; print $a; print $a =~ s#.#$a{$&}||$&#gsmer'
родитель
roditеlx
#
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0825 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.