亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? unicodeutf8.c

?? 標準c代碼
?? C
字號:
#include <stdio.h>
#include <string.h>

/// UTF-8的unicode表示方法到unicode的值轉換函數
int utf82unicode(unsigned int  byte[], int index, int count, char *out)
{
    int i, len=0;
	unsigned short unicode;

	for (i=index; i < count; ++i) 
	{

        if (index >= count) return len;
        if ( (byte[index] & 0x80) == 0x0)              //  一位
        {
                unicode = byte[index]; 
				index=index+1;

        }
         else if ((byte[index] & 0xE0) == 0xC0) // 兩位
        {
                if (index + 1 >= count ) return len;
                unicode = (((int)(byte[index] & 0x1F)) << 6) 
                        | (byte[ index + 1] & 0x3F);
				index=index+2;
        } 
        else if ((byte[index] & 0xF0) == 0xE0) // 三位
        {
                if (index + 2 >= count) return len;
                unicode = (((int)(byte[index] & 0x0F)) << 12) 
                        | (((int)(byte[index  + 1] & 0x3F)) << 6) 
                        | (byte[index + 2] & 0x3F);
				index=index+3;
        }
         else if ((byte[index] & 0xF8) == 0xF0) // 四位
        {
                if (index + 3 >= count) return len;
                unicode = (((int)(byte[index] & 0x07)) << 18) 
                        | (((int)(byte[index + 1] & 0x3F)) << 12) 
                        | (((int)(byte[index + 2] & 0x3F)) << 6) 
                        | (byte[index + 3] & 0x3F);
				index=index+4;
        }
         else if ((byte[index] & 0xFC) == 0xF8) // 五位
        {
                if (index + 4 >= count) return len;
                unicode = (((int)(byte[index] & 0x03)) << 24) 
                        | (((int)(byte[index + 1] & 0x3F)) << 18) 
                        | (((int)(byte[index + 2] & 0x3F)) << 12) 
                        | (((int)(byte[index + 3] & 0x3F)) << 6) 
                        | (byte[index + 4] & 0x3F);
				index=index+5;
        }
         else if ((byte[index] & 0xFE) == 0xFC) // 六位
        {
                if (index + 5 >= count) return len;
                unicode = (((int)(byte[index] & 0x01)) << 30) 
                        | (((int)(byte[index + 1] & 0x3F)) << 24) 
                        | (((int)(byte[index + 2] & 0x3F)) << 18) 
                        | (((int)(byte[index + 3] & 0x3F)) << 12) 
                        | (((int)(byte[index + 4] & 0x3F)) << 6) 
                        | (byte[index + 5] & 0x3F);
				index=index+6;
        }
         else
         {
                return len;
        }

		memcpy(&out[len] ,(char *)&unicode , 2 );
		len=len+2;
	}

	return len;

}

int char2digist(char in, int *out)
{
        if ('0' <= in && in <= '9')
                *out = in - '0' + 0x0;
        else if ('A' <= in && in <= 'F')
                *out = in - 'A' + 0xA;
        else if ('a' <= in && in <= 'f')
                *out = in - 'a' + 0xa;
        else  
                return 0;

        return 1;

}


int widechar2hexbyte(char* ch, int index, int count, unsigned int *byte)
{
        int h, l;
        if (index + 1 < count) {
                if (char2digist(ch[index], &h) && char2digist(ch[index + 1], &l))
                {
                        *byte = ((unsigned int)(h << 4)) | l;
                        return 1;
                }
        } else {
                if (char2digist(ch[index], &l))
                {
                        *byte = l;
                        return 1;
                }
        }
        return 0;

}

int utf8unicode(char *src , char *out)
{
        int bi, i, len;
        unsigned int bytes[200];
		int j=0, outlen =0;

		bi = 0, len = strlen(src);
        for (i = 0; i < len && bi < 200; ++ i)
        {
                if (!widechar2hexbyte(src, i++, len, &bytes[bi++]))
                        return 1;
        }

		memset(out , 0 , sizeof(out));
		outlen =utf82unicode(bytes, 0, bi, out);


        return outlen;

}/*---------------------------------------------------*/


typedef   unsigned  short  uchar2;   

int Uni2UTF(uchar2 wchar, char *utf8)
{
 if (utf8 == NULL) {
  return -1;
 }
 int len = 0;
 int size_d = 8;
 
 if (wchar < 0x80)
 {  //
  //length = 1;
  utf8[len++] = (char)wchar;
 }
 else if(wchar < 0x800)
 {
  //length = 2;
  
  if (len + 1 >= size_d)
   return -1;
  
  utf8[len++] = 0xc0 | ( wchar >> 6 );
  utf8[len++] = 0x80 | ( wchar & 0x3f );
 }
 else if(wchar < 0x10000 )
 {
  //length = 3;
  if (len + 2 >= size_d)
   return -1;
  
  utf8[len++] = 0xe0 | ( wchar >> 12 );
  utf8[len++] = 0x80 | ( (wchar >> 6) & 0x3f );
  utf8[len++] = 0x80 | ( wchar & 0x3f );
 }
 else if( wchar < 0x200000 ) 
 {
  //length = 4;
  if (len + 3 >= size_d)
   return -1;
  
  utf8[len++] = 0xf0 | ( (int)wchar >> 18 );
  utf8[len++] = 0x80 | ( (wchar >> 12) & 0x3f );
  utf8[len++] = 0x80 | ( (wchar >> 6) & 0x3f );
  utf8[len++] = 0x80 | ( wchar & 0x3f );
 }
 return len;
}

int unicodeutf8(char *unic, int uniLen, char *utf8)
{
	int		i, len ;
	char *pUtf8 = utf8;

	uchar2 *pUni =(uchar2 *)unic;
	
	for (i =0; i< uniLen ; i=i+2 )
	{
		if( (len=Uni2UTF( *pUni, pUtf8 ) )<0) return -1;
		pUtf8 = pUtf8+len;
		pUni ++;
	}

	return (pUtf8 - utf8);//返回utf8長度
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区成人在线观看| 欧美激情在线一区二区三区| 成人在线综合网站| 美国精品在线观看| 蜜臀va亚洲va欧美va天堂 | 91麻豆精品久久久久蜜臀| 91日韩在线专区| 91香蕉视频污在线| 91欧美一区二区| 在线影视一区二区三区| 在线观看三级视频欧美| 欧美日韩在线直播| 欧美一区二区三区视频在线观看| 欧美日韩一区不卡| 91精品国产色综合久久不卡蜜臀| 在线综合亚洲欧美在线视频| 欧美刺激午夜性久久久久久久| 欧美一级日韩免费不卡| 日韩欧美视频在线| 国产蜜臀av在线一区二区三区| 国产精品你懂的在线欣赏| 亚洲欧洲av一区二区三区久久| 亚洲最大色网站| 奇米色777欧美一区二区| 国产在线精品一区二区不卡了| 国产传媒欧美日韩成人| 91麻豆免费观看| 欧美久久一二区| 久久久久国产精品麻豆ai换脸| 国产精品国产a| 日韩国产精品久久| 成人一道本在线| 欧美高清www午色夜在线视频| 欧美第一区第二区| 国产精品久久久久aaaa| 天天亚洲美女在线视频| 国产精品99久| 欧美三级视频在线| 久久精品男人天堂av| 亚洲愉拍自拍另类高清精品| 国模套图日韩精品一区二区| 色综合天天做天天爱| 日韩欧美激情一区| 亚洲综合色视频| 国产精品系列在线观看| 欧美视频一区二| 久久久www免费人成精品| 亚洲成人自拍偷拍| 成人av一区二区三区| 日韩免费福利电影在线观看| 亚洲人精品午夜| 国产一区激情在线| 欧美三日本三级三级在线播放| 久久综合丝袜日本网| 日韩高清电影一区| 91免费视频观看| 国产婷婷色一区二区三区| 老色鬼精品视频在线观看播放| 91免费观看视频| 久久久国产精品午夜一区ai换脸| 天天爽夜夜爽夜夜爽精品视频| aaa亚洲精品| 欧美国产在线观看| 国内精品在线播放| 欧美一区二区三区日韩视频| 亚洲国产一二三| 日本大香伊一区二区三区| 国产精品水嫩水嫩| 国产成人综合在线| 国产亚洲欧美色| 国产伦精品一区二区三区免费| 7777精品伊人久久久大香线蕉的| 亚洲久草在线视频| 91亚洲精华国产精华精华液| 国产亚洲婷婷免费| 国产不卡视频一区二区三区| 久久一区二区三区四区| 久久精品国产网站| 精品国一区二区三区| 精品一区二区三区影院在线午夜 | 视频一区国产视频| 欧美日韩一级二级三级| 亚洲国产成人av网| 在线电影国产精品| 日韩精品一区第一页| 欧美不卡一区二区| 国产sm精品调教视频网站| 国产精品每日更新在线播放网址| 成人精品一区二区三区中文字幕| 国产亚洲视频系列| 色综合久久综合中文综合网| 亚洲男同性恋视频| 欧美日高清视频| 久久av中文字幕片| 国产欧美日韩中文久久| 成人av网站在线观看| 亚洲自拍偷拍九九九| 欧美福利一区二区| 国产在线视频精品一区| 中文无字幕一区二区三区| 91美女蜜桃在线| 美女免费视频一区二区| 中文字幕 久热精品 视频在线 | 337p亚洲精品色噜噜| 免费成人av在线| 亚洲国产精品精华液2区45| 一本到三区不卡视频| 奇米一区二区三区av| 日本一区二区三区免费乱视频| 色天天综合久久久久综合片| 日韩激情一区二区| 中文字幕av一区 二区| 欧美福利一区二区| 不卡一卡二卡三乱码免费网站 | 精品视频一区二区不卡| 裸体在线国模精品偷拍| 亚洲卡通动漫在线| 久久久综合精品| 欧美性受xxxx| 国产91精品免费| 日韩综合一区二区| 中文字幕中文字幕一区二区| 欧美福利电影网| 91视频www| 国产美女精品在线| 午夜久久久久久| 国产精品欧美综合在线| 欧美不卡一二三| 欧美三级电影在线看| 成熟亚洲日本毛茸茸凸凹| 日韩vs国产vs欧美| 亚洲精品菠萝久久久久久久| 欧美精品一区二区精品网| 欧美亚男人的天堂| 99国内精品久久| 国产在线精品视频| 久久成人综合网| 天天综合色天天综合色h| 亚洲色大成网站www久久九九| 精品国产乱码久久| 日韩免费视频一区| 欧美一区二区福利在线| 欧美日本一区二区在线观看| 色综合久久99| 91丨九色丨蝌蚪富婆spa| 国产老肥熟一区二区三区| 国模冰冰炮一区二区| 石原莉奈在线亚洲三区| 亚洲国产精品影院| 一区二区三区在线观看视频| 国产精品福利一区二区三区| 久久精品亚洲精品国产欧美| 久久久久久久精| 国产欧美日韩在线视频| 国产人伦精品一区二区| 久久久99免费| 久久免费看少妇高潮| 久久久久99精品国产片| 国产性色一区二区| 国产日韩高清在线| 亚洲天堂av一区| 亚洲国产精品综合小说图片区| 亚洲一线二线三线视频| 亚洲一区二区三区美女| 婷婷亚洲久悠悠色悠在线播放| 午夜国产精品一区| 免费成人av资源网| 国产成人丝袜美腿| 99久免费精品视频在线观看| 色诱视频网站一区| 欧美丰满美乳xxx高潮www| 91精品国产综合久久福利软件| 日韩一级二级三级| 国产欧美一区二区三区鸳鸯浴| 国产精品久久久久久久久果冻传媒 | 成人h版在线观看| 成人av免费网站| 在线视频一区二区三区| 欧美日本韩国一区| 精品国产91亚洲一区二区三区婷婷| 欧美一级搡bbbb搡bbbb| 亚洲国产精品ⅴa在线观看| 日韩一区中文字幕| 免费观看30秒视频久久| 国产老妇另类xxxxx| 日本韩国欧美三级| 日韩欧美中文字幕公布| 中国av一区二区三区| 亚洲激情五月婷婷| 老汉av免费一区二区三区| 99麻豆久久久国产精品免费| 欧美日本国产视频| 亚洲国产成人午夜在线一区| 一级中文字幕一区二区| 韩国精品免费视频| 色偷偷久久人人79超碰人人澡| 精品伦理精品一区| 亚洲一区二区三区在线| 国产成人av网站| 日韩一区二区电影网|