[Ruby] win1251 -> koi8-r

Eugene Scripnik Eugene.Scripnik at itgrp.net
Thu May 8 11:35:17 MSD 2003


SoNaR wrote:
> Hello Alexander,
> 
> Thursday, May 8, 2003, 10:31:28 AM, you wrote:
> 
> AD> On Thu, 8 May 2003 10:27:16 +0400
> AD> SoNaR <sonar at scli.ru> wrote:
> 
> 
>>>Hello Sergei,
>>>
>>>Thursday, May 8, 2003, 9:21:38 AM, you wrote:
>>>
>>>SD> On Thu, May 08, 2003 at 09:23:08AM +0400, SoNaR wrote:
>>>
>>>>>Hello ruby,
>>>>>
>>>>>  Как осуществить сабжевую перекодировку в рамках ruby?
>>>
>>>SD> Несколько способов существует. Первый - наковырять в интернете перловую
>>>SD> строчку, которая делает это при помощи regexp'ов (под рукой сейчас нет,
>>>SD> но находится на раз при помощи гугля).
>>>Нашел я эту строчку. Пишу следующее:
>>>my = "как дела?"
>>>my =~
>>>"tr/\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD
>>>1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\x
>>>E4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\
>>>xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF/\xE1\xE2\xF7\xE7\xE4\xE5\xF6\xFA\xE9\xE
>>>A\xEB\xEC\xED\xEE\xEF\xF0\xF2\xF3\xF4\xF5\xE6\xE8\xE3\xFE\xFB\xFD\xFF\xF9\x
>>>F8\xFC\xE0\xF1\xC1\xC2\xD7\xC7\xC4\xC5\xD6\xDA\xC9\xCA\xCB\xCC\xCD\xCE\xCF\
>>>xD0\xD2\xD3\xD4\xD5\xC6\xC8\xC3\xDE\xDB\xDD\xDF\xD9\xD8\xDC\xC0\xD1/" p my
>>>и получаю:
>>>"\352\340\352 \344\345\353\340?"
>>>А как нормальный текст получить?
> 
> 
> AD> надо запускать этот код не в irb, а 
> AD> $ ruby script.rb
> 
> А причем здесь это? Я запускаю вообще под виндой (rubyw). У меня есть
> строка. И она в принципе правильная. Но как мне ее в текст перевести?
Да это и есть текст, просто ты выводишь не текст, а его "внутреннее" 
представление. Хочешь увидеть текст - делай puts my (тебе об этом уже 
писали)
Второй вариант с iconv. Поскольку iconv уже долгое время в стандартной 
комплектации, то с RAA его видимо убрали. Не знаю как под windows с 
iconv работать, тебе видимо понадобится найти где-нить (например в 
гугле) скомпиленую библиотеку iconv.dll. Использование:

----------------------
require 'iconv'

Iconv.iconv( 'KOI8-R', 'CP1251', 'как дела?' ).to_s

-- 
Eugene Scripnik
IT Group
Software Architect
Tel./Fax +380 (372) 58-43-10
email: Eugene.Scripnik at itgrp.net
http://www.itgrp.net/




More information about the Ruby mailing list