LINUX.ORG.RU

Ruby и русский язык.


0

1

Господа, надеюсь кто-то объяснит мне, почему скрипт

#!/usr/bin/ruby
$KCODE='u'
a = ('а'..'п').to_a
p a
возвращает то, что и ожидаешь
["а", "б", "в", "г", "д", "е", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п"]
а скрипт
#!/usr/bin/ruby
$KCODE='u'
a = ('а'..'р').to_a
p a
такой вот результат
["а", "б", "в", "г", "д", "е", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "��", "�", "�", "�", "�", "�", "�", "�", "�", "", "�  ", "�
", "�
     ", "�
", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�▒", "�", "�▒", "�, "�", "�", "�", "�", "� ", "�!", "�"", "�#", "�$", "�%", "�&", "�'", "�(", "�)", "�*", "�+", "�,", "�-", "�.", "�/", "�0", "�1", "�2", "�3", "�4", "�5", "�6", "�7", "�8", "�9"]

Ответ на: комментарий от anonymous

1.8.7 (2010-08-16 patchlevel 302) и 1.8.7 (2009-06-12 patchlevel 174) ведут себя аналогично. Сейчас еще 1.9.2 докомпилю и там гляну, но чувствую я проблема тут таки в коде.

genesis_error ()
Ответ на: комментарий от genesis_error

подтверждаю странность на 1.8.7 (2010-08-16 patchlevel 302).
причем 'р'..'я' нормально выводит

Deleted ()

все тот же 1.8.7 (2009-06-12 patchlevel 174)

#!/usr/bin/ruby
$KCODE='u'
p ('а'..'п').to_a | ('р'..'я').to_a
даёт
["а", "б", "в", "г", "д", "е", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я"]

genesis_error ()
Ответ на: комментарий от Dmitry_Sokolowsky

Различие в последнем символе последовательности: ('а'..'п') и ('а'..'р').

genesis_error ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.