Unicode Ruby Emoji не отображает некоторые значки

Я использую ruby ​​2.2.2 и Emoji. Но по некоторым причинам некоторые значки не отображаются. Например (из http://apps.timwhitlock.info/emoji/tables/unicode):

Юникод: U+26F5

Байт (UTF-8): \xE2\x9B\xB5

Описание: Парусник

Может кто знает, как я могу это исправить?

Я знаю, что это работает в Java, JS, JRuby, и проблема заключается в:

https://en.wikipedia.org/wiki/UTF-8

Спасибо!

// for JS
// for converting unicode code points and code pairs to their respective characters
convert = function(unicode) {
    if(unicode.indexOf("-") > -1) {
        var parts = [];
        var s = unicode.split('-');
        for(var i = 0; i < s.length; i++) {
            var part = parseInt(s[i], 16);
            if (part >= 0x10000 && part <= 0x10FFFF) {
                var hi = Math.floor((part - 0x10000) / 0x400) + 0xD800;
                var lo = ((part - 0x10000) % 0x400) + 0xDC00;
                part = (String.fromCharCode(hi) + String.fromCharCode(lo));
            }
            else {
                part = String.fromCharCode(part);
            }
            parts.push(part);
        }
        return parts.join('');
    }
    else {
        var s = parseInt(unicode, 16);
        if (s >= 0x10000 && s <= 0x10FFFF) {
            var hi = Math.floor((s - 0x10000) / 0x400) + 0xD800;
            var lo = ((s - 0x10000) % 0x400) + 0xDC00;
            return (String.fromCharCode(hi) + String.fromCharCode(lo));
        }
        else {
            return String.fromCharCode(s);
        }
    }
};

Это работает для JavaScript, но если вывод JS возвращается в ruby, он не работает.

0 ответов

Другие вопросы по тегам