UTF-8 deserialization

JavaScript, UTF-8

Jump to: navigation, search

Сериализация UTF-8 наоборот.

String.prototype.deserialize = function() {
    var deserialized = '';
    for (var i = 0; i < this.length; ++i) {
        var c = this.charCodeAt(i);
        if (c > 0x80) {
            var d = this.charCodeAt(++i);
            if (c > 0xe0) {
                var e = this.charCodeAt(++i);
                c = (c & 0xf) << 12 | (d & 0x3f) << 6 | e & 0x3f;
            } else {
                c = (c & 0x1f) << 6 | d & 0x3f;
            }
        }
        deserialized += String.fromCharCode(c);
    }
    return deserialized;
};

Personal tools
ссылка