UCS-4 range (hex.) UTF-8 octet sequence (binary)
0000 0000-0000 007F 0xxxxxxx
0000 0080-0000 07FF 110xxxxx 10xxxxxx
0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-001F FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
0020 0000-03FF FFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
0400 0000-7FFF FFFF 1111110x 10xxxxxx ... 10xxxxxx
上面的表格左邊是16進(jìn)制表示的unicode內(nèi)碼,最后一行的16進(jìn)制數(shù)“7FFF FFFF”是utf8所能表示的內(nèi)碼的最大值,換成10進(jìn)制是這樣的一個(gè)數(shù):2147483647(夠大吧:))[對(duì)不起,此文最初這兒寫錯(cuò)了,已改正]。上面表格中右邊一列就是utf8的二進(jìn)制格式,轉(zhuǎn)換規(guī)則可謂一目了然。我直接給出算法吧(js代碼):
function toUtf8(code)
{
var iByte=0;
var i=0;
result="";
while(code>0x7f)
{
iByte=code%0x40;
code=(code-iByte)/0x40;
result="%"+(iByte|0x80).toString(16).toUpperCase()+result;
i++;
}
prefix=[0x0,0xc0,0xe0,0xf0,0xf8,0xfc];
if(i>prefix.length)
新聞熱點(diǎn)
疑難解答
圖片精選