天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

lib.utf.js

Javascript style="COLOR: black">/* UTF-8 <=> UTF-16 convertion library.
 *
/* Copyright (C) 1999 Masanao Izumo <[email protected]>
 * 2007 Ma Bingyao <[email protected]>
 * Version: 2.1
 * LastModified: Feb 25, 2007
 * This library is free. You can redistribute it and/or modify it.
 */


/*
 * Interfaces:
 * utf8 = utf16to8(utf16);
 * utf16 = utf16to8(utf8);
 */


function utf16to8(str) {
    if (str.match(/^[/x00-/x7f]*$/) != null) {
        return str;
    }
    var out, i, j, len, c, c2;
    out = [];
    len = str.length;
    for (i = 0, j = 0; i < len; i++, j++) {
        c = str.charCodeAt(i);
        if (c <= 0x7f) {
            out[j] = str.charAt(i);
        }
        else if (c <= 0x7ff) {
            out[j] = String.fromCharCode(0xc0 | (c >>> 6),
                 0x80 | (c & 0x3f));
        }
        else if (c < 0xd800 || c > 0xdfff) {
            out[j] = String.fromCharCode(0xe0 | (c >>> 12),
                 0x80 | ((c >>> 6) & 0x3f),
                 0x80 | (c & 0x3f));
        }
        else {
            if (++i < len) {
                c2 = str.charCodeAt(i);
                if (c <= 0xdbff && 0xdc00 <= c2 && c2 <= 0xdfff) {
                 c = ((c & 0x03ff) << 10 | (c2 & 0x03ff)) + 0x010000;
                 if (0x010000 <= c && c <= 0x10ffff) {
                 out[j] = String.fromCharCode(0xf0 | ((c >>> 18) & 0x3f),
                 0x80 | ((c >>> 12) & 0x3f),
                 0x80 | ((c >>> 6) & 0x3f),
                 0x80 | (c & 0x3f));
                 }
                 else {
                 out[j] = '?';
                 }
                }
                else {
                 i--;
                 out[j] = '?';
                }
            }
            else {
                i--;
                out[j] = '?';
            }
        }
    }
    return out.join('');
}


function utf8to16(str) {
    if ((str.match(/^[/x00-/x7f]*$/) != null) ||
        (str.match(/^[/x00-/xff]*$/) == null)) {
        return str;
    }
    var out, i, j, len, c, c2, c3, c4, s;


    out = [];
    len = str.length;
    i = j = 0;
    while (i < len) {
        c = str.charCodeAt(i++);
        switch (c >> 4) {
            case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
            // 0xxx xxxx
out[j++] = str.charAt(i - 1);
            break;
            case 12: case 13:
            // 110x xxxx 10xx xxxx
c2 = str.charCodeAt(i++);
            out[j++] = String.fromCharCode(((c & 0x1f) << 6) |
                 (c2 & 0x3f));
            break;
            case 14:
            // 1110 xxxx 10xx xxxx 10xx xxxx
c2 = str.charCodeAt(i++);
            c3 = str.charCodeAt(i++);
            out[j++] = String.fromCharCode(((c & 0x0f) << 12) |
                 ((c2 & 0x3f) << 6) |
                 (c3 & 0x3f));
            break;
            case 15:
            switch (c & 0xf) {
                case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
                // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx
c2 = str.charCodeAt(i++);
                c3 = str.charCodeAt(i++);
                c4 = str.charCodeAt(i++);
                s = ((c & 0x07) << 18) |
                 ((c2 & 0x3f) << 12) |
                 ((c3 & 0x3f) << 6) |
                 (c4 & 0x3f) - 0x10000;
                if (0 <= s && s <= 0xfffff) {
                 out[j] = String.fromCharCode(((s >>> 10) & 0x03ff) | 0xd800,
                 (s & 0x03ff) | 0xdc00);
                }
                else {
                 out[j] = '?';
                }
                break;
                case 8: case 9: case 10: case 11:
                // 1111 10xx 10xx xxxx 10xx xxxx 10xx xxxx 10xx xxxx
i+=4;
                out[j] = '?';
                break;
                case 12: case 13:
                // 1111 110x 10xx xxxx 10xx xxxx 10xx xxxx 10xx xxxx 10xx xxxx
i+=5;
                out[j] = '?';
                break;
            }
        }
        j++;
    }
    return out.join('');
}

JavaScript技術lib.utf.js,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 双性精跪趴灌满h室友4p | 久久五月综合婷婷中文云霸高清 | 亚洲国产精品第一影院在线观看 | 久久是热这里只有精品 | 麻豆Av国产在线播放 | 狠狠色狠狠色综合日日32 | 丰满的女友1在线观看 | 色青青草原桃花久久综合 | 毛片手机在线观看 | 国精产品一区一区三区有限在线 | 99久久99久久精品 | 亚洲欧洲日产国码久在线 | 一色屋精品亚洲香蕉网站 | 手机毛片在线 | 成人在线不卡视频 | 人妻夜夜爽天天爽三区麻豆AV网站 | 暖暖的视频完整视频免费韩国 | 电影内射视频免费观看 | 涩涩爱涩涩片影院 | 国产午夜精品久久久久婷婷 | 中文字幕一区二区视频 | 真人美女精美小穴 | 国产在线观看www鲁啊鲁免费 | 国产亚洲日韩在线播放不卡 | 快播黄色电影 | 任你躁精品一区二区三区 | 亚洲欧美中文在线一区 | 一本道高清无码v | 国产AV精品一区二区三区漫画 | 日本 一二三 不卡 免费 | 亚洲日韩欧美国产中文在线 | 国产高清视频免费在线观看 | 日本熟妇乱妇熟色A片蜜桃 日本熟妇多毛XXXXX视频 | 猫咪av永久最新域名 | 成人网视频在线观看免费 | 99在线免费观看 | 老奶奶50p | 亚洲A片不卡无码久久尤物 亚洲a免费 | 在线免费观看毛片 | 国产欧美一区二区精品久久久 | 一二三四在线观看高清电视剧 |