Страница 1 из 1

Ruby и юникод

Добавлено: 25 авг 2005, 23:04
Vorax
Я конечно знаю, что руби хранит строки не в юникоде.

Тогда как быть со строками содержащими, допустим, русские буквы.

"Lщ".length равно 3

Добавлено: 25 авг 2005, 23:16
Vorax
Кстати, в питоне то же самое.

len("питон") равно 10

Сколько пользуюсь, а никогда не проверял. И что удивительно, все как-то работает, и ни разу не довелось наступить на эту граблю :)

Добавлено: 26 авг 2005, 11:31
leikind
С length как раз проблем нет.

Код: Выделить всё

    require 'jcode'
    s = "Καλημέρα κόσμε!"
    p s.jlength  # => 15


Добавлено: 26 авг 2005, 11:33
leikind
В строке присваивания были греческие буквы
Изображение

Добавлено: 26 авг 2005, 14:18
Vorax
require 'jcode'
s = "Καλημέρα κόσμε!"
p s.jlength

У меня 28 :)

Добавлено: 26 авг 2005, 16:05
Vorax
$KCODE = "u"
require 'jcode'
s = "Καλημέρα κόσμε!"
p s.jlength

а вот теперь 15

Добавлено: 29 авг 2005, 03:54
mend0za
возможно Ruby не помешало бы поучится у TCL. Там внедрение юникода произошло давно и повлекло за собой интересные явления:
функции определения длины строки в символах и размера строки в байтах - это 2 разные функции.