1

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#Invalid_code_points

ありがとう!

// 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​​ に返されると機能しません。

4

0 に答える 0