[Ruby] base64

Sergei Dolmatov sergei at dolmatov.dsb.ru
Thu May 8 10:58:14 MSD 2003


On Thu, May 08, 2003 at 10:47:01AM +0400, SoNaR wrote:
> Hello Sergei,
> 
> Thursday, May 8, 2003, 10:22:25 AM, you wrote:
> 
> SD> On Thu, May 08, 2003 at 09:48:27AM +0400, SoNaR wrote:
> >> Hello ruby,
> >> 
> >>   Как мне перевести строчку 'yuDw4Pfg5eLuLdfl8Orl8fHo/y4' в нормальный
> >>   читаемый вид?
> >>   Делаю 'yuDw4Pfg5eLuLdfl8Orl8fHo/y4'.unpack("m")[0]
> >>   и получаю
> >>   "\312\340\360\340\367\340\345\342\356-\327\345\360\352\345\361\361\350"
> >>   Вопрос: как получить из этого русскоязычный текст в кодировке
> >>   win1251?
> 
> SD> Один из вариантов:
> 
> SD> #!/usr/bin/env ruby
> 
> SD> def win2koi(str)
> SD>   return
> SD> str.tr('АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя',
> SD> 'бвчздецъйклмнопртуфхжигюыэящшьасБВЧЗДЕЦЪЙКЛМНОПРТУФХЖИГЮЫЭЯЩШЬАС');
> SD> end;
> 
> SD> puts win2koi('yuDw4Pfg5eLuLdfl8Orl8fHo/y4'.unpack("m")[0])
> 
> SD> --
> SD> Regards,
> SD> Sergei Dolmatov.
> SD> ---
> SD> UNIX enhancements aren't.
> SD> _______________________________________________
> SD> Ruby mailing list
> SD> Ruby at altlinux.ru
> SD> http://www.altlinux.ru/mailman/listinfo/ruby
> 
> А в результате получаю nil...

Хм. Видимо, vim не совсем корректно обошелся с этой строкой, а я не
проконтролировал. Функция win2koi состоит из трех строк, на первой -
определение ее, на второй - собственно тело, на третьей - end. То есть,
выглядеть должно вот так:

def win2koi(str)
  str.tr('АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя', 'бвчздецъйклмнопртуфхжигюыэящшьасБВЧЗДЕЦЪЙКЛМНОПРТУФХЖИГЮЫЭЯЩШЬАС');
end

return, насколько я помню, можно опустить.

--
Regards,
Sergei Dolmatov.
---
UNIX enhancements aren't.



More information about the Ruby mailing list