Forum Webscript.Ru
Программирование => Perl => Тема начата: Pegasus от 18 Февраля 2004, 10:48:57
-
Привет!
Люди, вот такой вопрос у меня.
Получаю данные из HTML формы, котроые были введены на русском языке в шестнадцеричном формате, типа "%CD%E8%CA%EE%CB%E0%C9". Присваиваю это переменной $string. - $string="%CD%E8%CA%EE%CB%E0%C9";
теперь нужно транслитерировать эту строку, из диапазона данных %C0-%DF в диапазон %E0-%FF
как будет выглядеть правильный код? заранее спасибо!
-
use CGI;
print CGI::escape(\'привет\')
#%D0%D2%C9%D7%C5%D4
print CGI::unescape(\'%D0%D2%C9%D7%C5%D4\')
#привет
-
А что значит "транслитерировать эту строку, из диапазона данных %C0-%DF в диапазон %E0-%FF"?
-
Привет!
транслитерация - это замена всех символов из одного диапазона в другой соответственно.
допустим имеется строка $string="kuku";
если сделать так:
$string=~tr/a-z/A-Z/;
то все символы из диапазона a-z заменятся символами из диапазона A-Z, то есть $string уже будет "KUKU".
А мне надо перевести не символы а их шетнадцатеричный код из диапазона %C0-%DF в диапазон %E0-%FF, то есть чтобя %C0 заменилась на %Е0, %С1 на %Е1... ну и т.д....
-
Да что такое транслитерировать, я знаю.
Я так понял нужно было из 16-речного представления в русские буковки... Смутило "из диапазона %C0-%DF в диапазон %E0-%FF"... Что это значит? Что это за диапазоны?
-
Т.е. непонятно что это меняет ("%C0 заменилась на %Е0", etc). Всё равно же надо кириллические символы получить. Я в замешательстве...
-
Да нет, в русские буквы мне не надо. А этот диапазон, это и есть диапазон заглавных букв и маленьких, только в таком фомате. Мне надо перевести вме заглване буквы в маленькие, так как сайт, на сервере котором он находится, не поддерживает use locale;, и поэтому я не могу уменьшить заглавне русские буквы в мленькие, вот и задумал перевести вот таким вот образом.
-
Понял :)