显示列表

<script language="JavaScript">
<!--
var s = '汉';

alert(GetHexUTF8(s));

alert(encodeURI(s)); // encodeURI 类似 UrlEncode。如果字符是汉字,那么替换掉“%”就要它的十六进制的 UTF-8 编码


// 返回指定字符的 UTF-8 编码十六进制
function GetHexUTF8(s)
{
    var r = '';
    var uDec = s.charCodeAt(0); // Unicode 编码十进制
    var uHex = DecToHex(uDec); // Unicode 编码十六进制

    // 按 UTF-8 编码格式转换
    if (uDec < 128) // 1字节,0xxxxxxx
    {
        r = uHex;
    }
    else if (uDec < 2048) // 2字节,110xxxxx 10xxxxxx
    {
        r += DecToHex(192 | uDec >> 6);
        r += DecToHex(128 | uDec & 63);
    }
    else if (uDec < 65536) // 3字节,1110xxxx 10xxxxxx 10xxxxxx
    {
        r += DecToHex(224 | uDec >> 12);
        r += DecToHex(128 | uDec >> 6 & 63);
        r += DecToHex(128 | uDec & 63);    
    }
    else if (uDec < 2097152) // 4字节,11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
    {
        r += DecToHex(240 | uDec >> 18);
        r += DecToHex(128 | uDec >> 12 & 63);
        r += DecToHex(128 | uDec >> 6 & 63);
        r += DecToHex(128 | uDec & 63);
    }

    return r;
}

// 二进制转十进制
function BinToDec(s)
{
    return parseInt(s, 2);
}

// 二进制转十六进制
function BinToHex(s)
{
    return DecToHex(BinToDec(s));
}

// 十进制转二进制
function DecToBin(s)
{
    return s.toString(2);
}

// 十进制转十六进制
function DecToHex(s)
{
    return s.toString(16);
}

// 十六进制转二进制
function HexToBin(s)
{
    return DecToBin(HexToDec(s));
}

// 十六进制转十进制
function HexToDec(s)
{
    return parseInt(s, 16);
}
//-->
</script>

返回摘要 | 分类(JavaScript) | 访问(332) | 编辑