青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數據加載中……

GB18030編碼研究以及GBK、GB18030與Unicode的映射

GB18030有兩個版本:GB18030-2000GB18030-2005。在本文中,沒有指明版本的GB18030是指GB18030-2005。本文討論了以下問題:

1.           GB2312682個圖形符號,都放在1區。GBK1區有717個圖形符號,5區有 166個圖形符號,一共有883個圖形符號。GB180301區有728個圖形符號,5區還是166個符號。那么,GBK1區在GB2312基礎上增 加了哪35個符號?GB18030又增加了哪些符號?

2.           GBK支持21003個漢字與883個圖形符號,一共21886個字符。這21886個字符究竟是哪些字符?這21886個字符的編碼在GB18030中有什么變化?

3.           GB18030是怎樣映射Unicode的全部0x110000個碼位的?

4.           GB18030-2000GB18030-2005在字匯上有什么區別,在編碼上有什么區別?

5.           GB18030-2005的雙字節區中有2067個碼位被映射到Unicode BMPPUA。這些碼位有什么規律?這些碼位中定義了多少字符?其實這2067個碼位中只定義了24個字符。

6.           GBK21886個字符中有95個字符被映射到Unicode BMPPUA。在GB18030中這95個字符的編碼有哪些變化?哪些字符保持了原來的編碼?

7.           GBK23940個碼位中有多少碼位被映射到Unicode BMPPUA?在GB18030中這些碼位的編碼有什么變化?

在討論這些問題前,我們先約定一下碼位空間的表示方法。

0 位空間

0.1 約定

GBK是雙字節編碼,每個字符用兩個字節表示。GB18030是多字節字符集,它的字符可以用一個、兩個或四個字節表示。碼位空間由各字節的范圍確定。例如:GB18030的四字節字符碼位空間是:

·                第一字節在0x81~0xFE之間

·                第二字節在0x30~0x39之間

·                第三字節在0x81~0xFE之間

·                第四字節在0x30~0x39之間

為了表述方便,我們用0x81308130~0xFE39FE39表示這個碼位空間。也就是說:在本文中0x81308130~0xFE39FE39所指的并是從0x813081300xFE39FE39的連續20977738340xFE39FE39-0x81308130+1)個字節。在本文中,0x81308130~0xFE39FE39所指的是編碼的各字節在對應范圍內的碼位空間,這個碼位空間的碼位數目是:

(0xFE-0x81+1)*(0x39-0x30+1)*(0xFE-0x81+1)*(0x39-0x30+1)=126*10*126*10=1587600

同理,0xB0A1~0xF7FE代表的碼位空間是第一字節在0xB0~0xF7之間,第二字節在0xA1~0xFE之間的所有碼位。這個碼位空間的碼位數目是:

(0xF7-0xB0+1)*(0xFE-0xA1+1)=72*94=6768

這個碼位空間就是GBKGB180302區,在這6768個碼位中定義了6763個字符。

本文用~表示上述碼位空間,用-表示一般的范圍,即:

·                0xA1A1~0xA9FE 表示第一字節在0xA10xA9之間,第二字節在0xA1~0xFE之間的846(0xA9-0xA1+1)*(0xFE-0xA1+1)=9*94)個碼位。

·                0xE000-0xF8FF 表示從0xE000-0xF8FF的連續64000xF8FF-0xE000+1)個碼位。

0.2 習題

讀者如果已經理解了上面的約定,請完成下面兩個習題:

1.           習題一:求碼位空間0x8140~0xFE7E的碼位數目。

2.           習題二:求碼位空間0x8180~0xFEFE的碼位數目。

0.3 答案

以下是習題0.2的答案:

1.           習題一:(0xFE-0x81+1)*(0x7E-0x40+1)=126*63=7938

2.           習題二:(0xFE-0x81+1)*(0xFE-0x80+1)=126*127=16002

GB18030雙字節字符的碼位空間就是0x8140~0xFE7E0x8180~0xFEFE,雙字節字符的碼 位數目是7938+16002=239400x8140~0xFE7E0x8180~0xFEFE也是GBK的全部碼位空間。GBK在這23940個 碼位中定義了21886個字符。

GBK回顧

1.1 簡介

GBK是雙字節編碼方案。它的碼位空間就是前面所說的0x8140~0xFE7E0x8180~0xFEFE,一共23940個碼位。在這23940個碼位上定義了21886個字符,包括21003個漢字和883個圖形符號。《Unicode、GB2312、GBK和GB18030中的漢字》詳細討論了這21003個漢字。本文的第3節會討論GB2312GBKGB18030的圖形符號。

GBK的碼位空間可以劃分為以下區域:

類別

區名

碼位范圍

碼位數

字符數

符號區

1

0xA1A1~0xA9FE

846

717

5

0xA840~0xA97E0xA880~0xA9A0

192

166

漢字區

2

0xB0A1~0xF7FE

6768

6763

3

0x8140~0xA07E0x8180~0xA0FE

6080

6080

4

0xAA40~0xFE7E0xAA80~0xFEA0

8160

8160

用戶自定義區

用戶區1

0xAAA1~0xAFFE

564

 

用戶區2

0xF8A1~0xFEFE

658

 

用戶區3

0xA140~0xA77E0xA180~0xA7A0

672

 

1.2 GBK字符與Unicode的映射

我制作了一個Excel文件:附件1。這個文件包含3張表格:

1.           按照GBK編碼排序的GBK全部21886字符碼表。這個表格有3列:字符、GBK編碼、Unicode編碼。

2.           按照Unicode編碼排序的GBK全部21886字符碼表。這個表格有3列:字符、Unicode編碼、GBK編碼。

3.           從 按Unicode編碼排序的表格中,很容易找到被映射到PUA0xE000-0xF8FF)的字符。GBK21886個字符中有95個字符屬于 PUA。第三張表格列出了這95個字符(A列)的GBK編碼(B列)、Unicode編碼(C列)以及這些字符在GB18030中對應的Unicode編 碼(D列)。
其中D列可能不太容易理解,我再解釋一下。GB18030是兼容GBK的,所以這些字符的GBK編碼和GB18030編碼是相同的。例如
GBK編碼和GB18030編碼都是0xA8BF。但是在GBKGB18030中,被映射到不同的Unicode碼位。在GBK中, 0xA8BF被映射到Unicode0xE7C8。在Unicode中,碼位0xE7C8是一個PUA碼位,保留給用戶使用。在GB18030中, 0xA8BF被映射到Unicode0x01F9。在Unicode中,碼位0x01F9屬于拉丁字母擴充-B”這個Block,這個碼位定義的字符 是帶抑音符的拉丁文小寫字母 N”,字形就是

1.3 GBK碼位與Unicode的映射

GBK23940個碼位定義了21886個字符,還有23940-21886=2054個空閑碼位,這2054個 碼位都被映射到UnicodePUA。在設計GBK時,GBK21886個字符中有95個在Unicode中沒有對應字符,所以這95個字符也被映射 到UnicodePUA。在GBK23940個碼位中,一共有2054+95=2149個碼位被映射到PUA,對應的PUA編碼是0xE000- 0xE8640xE000-0xE864就是2149個碼位。這2149個碼位的分配有以下規律:

碼位所在區域

碼位數量

映射到的PUA范圍

用戶區10xAAA1~0xAFFE

564

0xE000-0xE233

用戶區20xF8A1~0xFEFE

658

0xE234-0xE4C5

用戶區30xA140~0xA77EA180-A7A0

672

0xE4C6-0xE765

符號區(1區和5區)的170個空閑碼位

170

0xE766-0xE80F

2區的5個空閑碼位:0xD7FA-0xD7FE

5

0xE810-0xE814

4區的80Unicode當時沒有定義的字符:FE50-FE7EFE80-FEA0

80

0xE815-0xE864

附件2包含兩張表格:

1.           23940GBK碼位與Unicode的映射。兩組數據分別按GBKUnicode排序。

2.           2149個映射到PUA的碼位,按Unicode順序排列。

2 GB18030編碼

2.1 概述

GB18030是多字節字符集,它的字符可以用一個、兩個或四個字節表示。GB18030的碼位定義如下:

字節數

碼位空間

碼位數

字符數

單字節

0x00~0x7F

128

128

雙字節

0x8140~0xFE7E0x8180~0xFEFE

23940

21897

四字節

0x81308130~0xFE39FE39

1587600

54531

GB18030128+23940+1587600=1611668個碼位。Unicode的碼位數目是0x1100001114112),少于GB18030。所以,GB18030有足夠的空間映射Unicode的所有碼位。

GB180301611668個碼位目前定義了128+21897+54531=76556個字符。Unicode 5.0定義了99089個字符。

2.2 設計思路

GB18030編碼可以分為:單字節部分、雙字節部分和四字節部分。單字節部分與Unicode0x00-0x7f完全相同。雙字節部分與GBK有兩點差異:

1.           1區增加了11個字符。這樣1區就有717+11=728個字符。增加的11個字符是:一個歐元符號(0xA2E3)和10個豎排標點符號(0xA6D9-0xA6DF0xA6EC-0xA6ED0xA6F3)。

2.           原來因為Unicode沒有收錄而映射到PUA的字符中的部分字符被新版本的Unicode收錄,所以將這些字符映射到非PUA的碼位。

UnicodeBMP一共有65536個碼位。其中代理區(0xD800-0xDFFF)有2048個碼位,這 2048個碼位是不能定義字符的。GB18030的單字節部分映射了128個碼位,GB18030的雙字節部分映射了23940個碼位。還剩下65536 -2048-128-23940=39420個碼位。

GB18030將這39420個碼位順序映射到從0x81308130開始的碼位空間。GB18030 Unicode16個輔助平面(0x10000-0x10FFFF,一共1048576個碼位)順序映射到從0x90308130開始的碼位空間。 GB18030四字節部分中只有這兩個區域定義了字符,其它空間都是保留區和自定義區。本文的第3節和第4節還會詳細討論GB18030的雙字節和四字節部分。

GB18030的設計思路可以概括到以下幾點:

1.           單字節部分與Unicode一致。

2.           雙字節部分與GBK兼容。適當調整一些字符與Unicode的映射。這些字符原來因為Unicode沒有收錄而被映射到PUA,現在因為Unicode已經收錄而調整到非PUAUnicode碼位。

3.           Unicode BMP部分還沒有映射的39420個碼位順序映射到從0x81308130開始的四字節部分。

4.           Unicode BMP以外的16個輔助平面映射到39420個碼位順序映射到從0x90308130開始的四字節部分。

GB18030目前定義的76556個字符中,只有24個字符被定義到UnicodePUA區。這24個字符包 括1區的10個豎排標點符號(0xA6D9-0xA6DF0xA6EC-0xA6ED0xA6F3)和4區的14個漢字(0xFE51 0xFE520xFE530xFE590xFE610xFE660xFE670xFE6C0xFE6D0xFE760xFE7E 0xFE900xFE910xFEA0)。4區的14個漢字在Unicode 5.0中其實也可以找到非PUA的編碼,詳見《Unicode、GB2312、GBK和GB18030中的漢字》。但按照GB18030,它們還是應該映射到PUA碼位。

2.3 GB18030-2000GB18030-2005的區別及以后版本

GB18030-2005GB18030-2000的編碼體系結構是完全相同的。GB18030-2005相對于GB18030-2000主要有以下變化:

1.           在四字節字符表中增加CJK統一漢字擴充B和已經在GB13000中編碼的我國少數民族文字字符的字形。其實GB18030-2000已經映射了這些碼位,但GB18030-2000沒有給出這些字符的字形。

2.           調整字符的編碼。

其中的編碼調整比較有意思。GB18030編碼是0xA8BCUnicode 5.0的編碼是0x1E3F。在GB18030-20000xA8BC被映射到Unicode0xE7C7,因為雙字節部分沒有映射0x1E3F,所 以它作為BMP的未映射字符被放到四字節部分的0x8135F437GB18030-20050xA8BC映射到0x1E3F,那么Unicode碼 位0xE7C7怎么辦呢?為了最小化對原來編碼的影響,設計者將Unicode碼位0xE7C7映射到本來映射0x1E3F0x8135F437

GB18030已經映射了Unicode的所有碼位,所以不管Unicode怎么變化,GB18030不過就是在現在的碼位上增加一些字形而已,編碼不會變化。只有現在還映射到PUA24個字符以后可能會調整到非PUA碼位。調整方法應該與的調整方法相同。

2.4 GB18030雙字節部分

前面已經介紹過GB18030雙字節部分與GBK的區別,本小節再提一些細節。前面也說過,GB18030映射了 Unicode除代理區外的所有碼位。所以,Unicode BMP6400PUA碼位在GB18030中都有對應的碼位。GB18030雙字節部分映射了2067PUA碼位。

前面說過,GBK映射了2149PUA碼位。現在GB18030雙字節部分映射了2067PUA碼位。所以有 2149-2067=82個字符的映射發生了變化。GBK原來有95個字符映射到PUA,其中81個字符在GB18030中被映射到非PUA碼位。余下的 14個漢字就是《Unicode、GB2312、GBK和GB18030中的漢字》提到的那14個漢字(0xFE510xFE520xFE530xFE590xFE610xFE660xFE670xFE6C0xFE6D0xFE760xFE7E0xFE900xFE910xFEA0)。附件1列出了這些字符的編碼變化。82個映射變化的碼位,除了這81個外,還有一個就是歐元符號:GB18030編碼是0xA2E3Unicode編碼是0x20AC。碼位0xA2E3GBK中被映射到0xE76CGBK的碼位0xA2E3沒有定義字符。

GB18030雙字節部分與Unicode的映射沒有規律,只能通過查表方法映射。

2.5 GB18030四字節部分

GB18030四字節部分的字符可以見GB18030-20053 四字節部分的碼位安排,一共54531個字符。GB18030四字節部分的碼位可以見GB18030-2005“7.3 四字節部分字符的排列順序。其中定義字符的只有兩個區域:

·                GB18030用碼位0x81308130~0x8439FE3950400個碼位映射該標準單字節和雙字節部分沒有映射過的39420Unicode BMP碼位。

·                GB18030用碼位0x90308130~0xE339FE391058400個碼位映射Unicode 16個輔助平面(平面1到平面16)的65536*16=1048576個碼位。

為了敘述方便,本文將0x81308130~0x8439FE39稱作“BMP擴展部分,將 0x90308130~0xE339FE39稱作輔助平面部分GB18030四字節部分的碼位空間是0x81308130~0xFE39FE39。 第二字節有(0x39-0x30+1)=10個可能值。第三字節有(0xFE-0x81+1)=126個可能值。第四字節也是(0x39-0x30+1) =10個可能值。為了方便下面的演算,本文為這個碼位空間定義幾個名詞:

·                我們將四字節碼位空間中第一字節相同的區域稱作一級區。每個一級區有12600個碼位,即:10*126*10

·                我們將四字節碼位空間中第一字節和第二字節相同的區域稱作二級區。每個二級區有1260個碼位,即:126*10

·                我們將四字節碼位空間中前三個字節相同的區域稱作三級區,每個三級區有10個碼位。

四字節部分一共有(0xFE-0x81+1)=126個一級區。BMP擴展部分有4個一級區。輔助平面部分有84個一級區。還有38個一級區是保留區或自定義區。

2.5.1 BMP擴展部分

BMP擴展部分占據四字節部分開頭的4個一級區,一共有4*12600=50400個碼位。這段空間的 Unicode映射說起來還是很簡單的,就是順序映射單字節、雙字節沒有映射過的BMP碼位。這些映射關系在GB18030-2000中確定下來。以后的 調整(例如)只是個別字符,不會影響其它字符的位置。但是因為雙字節字符已經映射過的BMP碼位沒有什么規律,所以造成BMP擴展部分的Unicode 映射也不能用公式換算,還是要查表解決。

顯然這50400個碼位中只用到了39420個碼位,其余碼位都是保留的。出于好玩,我們來計算一下最后一個非保留碼位(0xFFFF)的位置,計算過程如下:

·                m1=(39420-1)/12600=3

·                n1=(39420-1)%12600=1619

·                m2=n1/1260=1619/1260=1

·                n2=n1%1260=1619%1260=359

·                m3=n2/10=359/10=35

·                n3=n2%10=359%10=9

·                第一字節的位置是:0x81+m1=0x81+3=0x84

·                第二字節的位置是:0x30+m2=0x30+1=0x31

·                第三字節的位置是:0x81+m3=0x81+35=0xA4

·                第四字節的位置是:0x30+n3=0x30+9=0x39

所以Unicode編碼0xFFFF映射的GB18030位是0x8431A439。在BMP擴展部分中,0x8431A439以后的碼位都是保留碼位。上述計算中,/表示整除(例如5/3=1),%表示取余(例如5%3=2)。

2.5.2 輔助平面部分

輔助平面部分用84個一級區(0x90308130~0xE339FE39)直接映射Unicode16個輔助平面。這部分映射是可以直接用公式計算的。讓我們看看怎么計算。

·                Unicode編碼到GB18030編碼的映射方法如下:

·                      U=Unicode編碼-0x10000

·                      m1=U/12600

·                      n1=U%12600

·                      m2=n1/1260

·                      n2=n1%1260

·                      m3=n2/10

·                      n3=n2%10

·                      第一字節b1=m1+0x90

·                      第二字節b2=m2+0x30

·                      第三字節b3=m3+0x81

·                      第四字節b4=n3+0x30

按 照上述方法可以計算出0x10FFFF被映射到0xE3329A35。在輔助平面部分,0xE3329A35以后的碼位都是保留碼位。以上所寫的算法可以很容易寫成C/C++代碼。對于不會編程的讀者,也可以用Excel公式計算。假設Unicode編碼放在單元格A12,計算方法如下:

·                      m1放在B12B12=INT((HEX2DEC(A12)-65536)/12600)

·                      n1放在C12C12=MOD((HEX2DEC(A12)-65536),12600)

·                      m2放在D12D12=INT(C12/1260)

·                      n2放在E12E12=MOD(C12,1260)

·                      m3放在F12F12=INT(E12/10)

·                      n3放在G12G12=MOD(E12,10)

·                      將第一字節放在H12H12=DEC2HEX(B12+144)

·                      將第二字節放在I12I12=DEC2HEX(D12+48)

·                      將第三字節放在J12J12=DEC2HEX(F12+129)

·                      將第四字節放在K12K12=DEC2HEX(G12+48)

附件3中有寫好上述公式的Excel表格。使用函數HEX2DEC/DEC2HEX需要通過工具->加載宏鉤上分析工具庫

·                GB18030編碼到Unicode編碼的映射方法如下:

·                      GB18030編碼的四個字節依次為:b1b2b3b4,則
Unicode
編碼=0x10000+(b1-0x90)*12600+(b2-0x30)*1260+(b3-0x81)*10+b4-0x30

假設b1b2b3b4分別放在A4B4C4D4Unicode編碼放在E4,則Excel計算公式為:

·                      E4 = =DEC2HEX((HEX2DEC(A4)-144)*12600+(HEX2DEC(B4)-48)*1260+(HEX2DEC(C4)-129)*10+(HEX2DEC(D4)-48)+65536)

2.6 GB18030Unicode的映射表

附件3給出了GB18030Unicode的映射表。這個Excel文件是在網友謝振斌先生的映射表基礎上制作的,包含3張表格:

1.           雙字節部分23940個碼位與Unicode的映射。兩組數據分別按GB18030Unicode排序。

2.           BMP擴展部分39420個碼位與Unicode的映射。兩組數據分別按GB18030Unicode排序。

3.           輔助平面部分,GB18030編碼和Unicode編碼的映射公式。

3 GB2312GBKGB18030中的圖形符號

在研究GB18030編碼的過程中,我整理了GB2312GBKGB180301區和5區的圖形符號,制作了附件4。這個Excel文件包含3張表格:

1.           GB23121區字符表。GBKGB180301區、5區字符表。用不同顏色標注了GBK增加的35個字符和GB18030增加的11個字符。

2.           GB2312 1682個符號的編碼。

3.           GBK 1717個符號的編碼。

結束語

通過本文的介紹,讀者可以回答開頭的問題了嗎?

無論是Windows XP還是Vista,中文(中國)區域對應的默認代碼頁還是GBK。我們只能設置區域,并不能設置區域對應的默認代碼頁。所以在Windows世界,只要微軟不愿意,GB18030就只是一張普通的代碼頁。目前的簡體中文文檔使用的編碼主要是UnicodeGBK,應該沒有什么文檔會用GB18030保 存。本文只是出于程序員的好奇而對GB18030編碼所作的一些研究,希望能對同樣好奇的讀者有所助益。

 

posted on 2009-09-10 23:37 肥仔 閱讀(2360) 評論(0)  編輯 收藏 引用 所屬分類: 字符編碼

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美精品乱人伦久久久久久| 久久久久久网| 国内精品久久久久久| 欧美日韩中文字幕| 国产精品高清在线| 国产欧美日韩精品丝袜高跟鞋| 欧美精品一区在线发布| 欧美四级伦理在线| 国产女主播一区二区| 国产香蕉97碰碰久久人人| 亚洲成人资源| 一本色道**综合亚洲精品蜜桃冫| 国产精品99久久久久久白浆小说| 午夜视频久久久| 免费在线欧美黄色| 99re在线精品| 久久精品91久久香蕉加勒比| 久久在线视频在线| 国产精品久久一区二区三区| 好吊色欧美一区二区三区四区 | 亚洲无玛一区| 久久激五月天综合精品| 欧美韩国日本一区| 国产精品日韩欧美综合| 亚洲国产精品成人久久综合一区| 亚洲一卡久久| 欧美成人一区二区三区在线观看| 亚洲免费精彩视频| 久久精品综合网| 欧美三区免费完整视频在线观看| 国产精品永久免费观看| 国产精品久久久久高潮| 亚洲免费在线| 欧美高清在线一区二区| 亚洲欧美日韩在线播放| 欧美大片第1页| 海角社区69精品视频| 亚洲一区二区三区精品在线观看| 久久久久久久一区二区三区| aⅴ色国产欧美| 欧美成ee人免费视频| 国产视频久久久久久久| 亚洲一区免费| 亚洲欧洲久久| 欧美在线一二三四区| 欧美午夜片欧美片在线观看| 亚洲看片一区| 欧美激情一区二区三区在线视频观看| 亚洲一二三区在线| 欧美视频国产精品| 一区二区三区 在线观看视频| 蜜臀a∨国产成人精品| 欧美中文在线字幕| 国产亚洲综合性久久久影院| 亚洲午夜av电影| 亚洲乱码国产乱码精品精98午夜| 免费视频一区二区三区在线观看| 樱桃成人精品视频在线播放| 久久精品欧美| 久久国产欧美| 影音先锋亚洲电影| 免费亚洲视频| 久久久久久久欧美精品| 激情偷拍久久| 免费久久久一本精品久久区| 久久精品欧美| ●精品国产综合乱码久久久久| 久久综合给合久久狠狠狠97色69| 欧美尤物巨大精品爽| 国产在线麻豆精品观看| 久久久伊人欧美| 久久免费的精品国产v∧| 在线观看日韩精品| 欧美激情麻豆| 欧美日韩亚洲一区三区| 亚洲一区二区三区视频| 亚洲一区二区精品在线| 国产欧美日韩三区| 美女主播精品视频一二三四| 美日韩丰满少妇在线观看| 亚洲精品免费一区二区三区| 日韩一区二区电影网| 国产精品一区一区| 欧美成人日本| 国产精品a久久久久| 欧美在线1区| 美女日韩欧美| 亚洲视频香蕉人妖| 欧美一区二区视频在线观看2020 | 亚洲美女视频网| 欧美黄污视频| 新狼窝色av性久久久久久| 久久久91精品国产| 在线午夜精品| 久久丁香综合五月国产三级网站| 亚洲精品久久久久久久久久久久久 | 亚洲一区日韩| 欧美一区二区在线免费观看| 亚洲国产乱码最新视频| 一区二区电影免费观看| 在线观看欧美日本| 亚洲自拍偷拍福利| 亚洲精品国产精品乱码不99按摩| 亚洲专区免费| 一区二区三区四区国产| 久久精品女人的天堂av| 亚洲欧美日韩国产综合| 麻豆成人综合网| 欧美一区二区在线免费观看| 欧美aⅴ99久久黑人专区| 欧美一级电影久久| 欧美精品国产精品日韩精品| 久久久久一区二区三区| 欧美久久久久免费| 开心色5月久久精品| 国产精品久久久久三级| 亚洲精品国产精品国产自| 一区二区三区在线不卡| 午夜免费久久久久| 亚洲欧美国产一区二区三区| 欧美精品91| 欧美高清在线一区| 影音先锋日韩有码| 久久精品国产综合| 久久久久国产一区二区三区四区| 国产精品久久久久9999| 日韩视频一区| 日韩视频一区二区在线观看 | 欧美一区二区免费观在线| 亚洲调教视频在线观看| 欧美日韩成人激情| 亚洲精品欧美日韩| 夜夜爽99久久国产综合精品女不卡| 麻豆精品在线视频| 欧美96在线丨欧| 1024国产精品| 欧美成人免费全部| 亚洲激情视频在线播放| 亚洲精品久久久一区二区三区| 美女精品在线| 亚洲精品国精品久久99热| 亚洲精品乱码久久久久久蜜桃麻豆 | 亚洲三级视频| 欧美大片第1页| 亚洲国产精品福利| 亚洲国产美女| 久久精品免费观看| 免费亚洲一区| 亚洲欧洲一区| 欧美激情亚洲自拍| 亚洲人成毛片在线播放| 一区二区三区国产盗摄| 欧美日韩精品一区二区三区| 日韩一区二区电影网| 亚洲四色影视在线观看| 欧美午夜精品久久久久久浪潮| 亚洲一区二区在线观看视频| 欧美一级大片在线观看| 激情丁香综合| 欧美啪啪一区| 校园激情久久| 欧美激情第4页| 亚洲视频一区在线| 国内揄拍国内精品久久| 欧美激情视频在线免费观看 欧美视频免费一 | 亚洲国产精品电影在线观看| 欧美伦理91| 亚洲视频网在线直播| 久久精品国产欧美亚洲人人爽| 国产综合视频在线观看| 久久免费视频网| 亚洲免费不卡| 久久国内精品自在自线400部| 在线精品亚洲| 欧美视频一区二区三区…| 亚洲天堂网在线观看| 麻豆精品一区二区av白丝在线| 亚洲人成人一区二区在线观看| 欧美日韩国产成人在线| 性欧美暴力猛交69hd| 美女图片一区二区| 亚洲午夜在线| 亚洲黄色免费电影| 国产精品日本欧美一区二区三区| 欧美一区二区三区的| 亚洲欧洲精品一区二区三区波多野1战4 | 亚洲视频自拍偷拍| 狠狠色狠狠色综合日日91app| 欧美三级在线播放| 久久免费99精品久久久久久| 一本久久综合亚洲鲁鲁五月天 | 99国内精品| 免费在线看成人av| 午夜久久资源| 亚洲美女精品久久| 国产综合色在线| 国产精品一区二区久久久| 99re8这里有精品热视频免费| 国产伪娘ts一区| 欧美日韩大片一区二区三区|