精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

帶你深入理解Python字符編碼

開發(fā) 后端
不論你是有著多年經(jīng)驗的 Python 老司機還是剛?cè)腴T Python 不久,你一定遇到過UnicodeEncodeError、UnicodeDecodeError 錯誤,每當遇到錯誤我們就拿著 encode、decode 函數(shù)翻來覆去的轉(zhuǎn)換,有時試著試著問題就解決了,有時候怎么試都沒轍,只有借用 Google 大神幫忙。

不論你是有著多年經(jīng)驗的 Python 老司機還是剛?cè)腴T Python 不久,你一定遇到過UnicodeEncodeError、UnicodeDecodeError 錯誤,每當遇到錯誤我們就拿著 encode、decode 函數(shù)翻來覆去的轉(zhuǎn)換,有時試著試著問題就解決了,有時候怎么試都沒轍,只有借用 Google 大神幫忙,但似乎很少去關(guān)心問題的本質(zhì)是什么,下次遇到類似的問題重蹈覆轍,那么你有沒有想過一次性徹底把 Python 字符編碼給搞懂呢?

完全理解字符編碼 與 Python 的淵源前,我們有必要把一些基礎(chǔ)概念弄清楚,雖然有些概念我們每天都在接觸甚至在使用它,但并不一定真正理解它。比如:字節(jié)、字符、字符集、字符碼、字符編碼。

字節(jié)

字節(jié)(Byte)是計算機中數(shù)據(jù)存儲的基本單元,一字節(jié)等于一個8位的比特,計算機中的所有數(shù)據(jù),不論是保存在磁盤文件上的還是網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)(文字、圖片、視頻、音頻文件)都是由字節(jié)組成的。

字符

你正在閱讀的這篇文章就是由很多個字符(Character)構(gòu)成的,字符一個信息單位,它是各種文字和符號的統(tǒng)稱,比如一個英文字母是一個字符,一個漢字是一個字符,一個標點符號也是一個字符。

字符集

字符集(Character Set)就是某個范圍內(nèi)字符的集合,不同的字符集規(guī)定了字符的個數(shù),比如 ASCII 字符集總共有128個字符,包含了英文字母、阿拉伯數(shù)字、標點符號和控制符。而 GB2312 字符集定義了7445個字符,包含了絕大部分漢字字符。

字符碼

字符碼(Code Point)指的是字符集中每個字符的數(shù)字編號,例如 ASCII 字符集用 0-127 連續(xù)的128個數(shù)字分別表示128個字符,例如 "A" 的字符碼編號就是65。

字符編碼

字符編碼(Character Encoding)是將字符集中的字符碼映射為字節(jié)流的一種具體實現(xiàn)方案,常見的字符編碼有 ASCII 編碼、UTF-8 編碼、GBK 編碼等。某種意義上來說,字符集與字符編碼有種對應關(guān)系,例如 ASCII 字符集對應 有 ASCII 編碼。ASCII 字符編碼規(guī)定使用單字節(jié)中低位的7個比特去編碼所有的字符。例如"A" 的編號是65,用單字節(jié)表示就是0×41,因此寫入存儲設(shè)備的時候就是b'01000001'。

編碼、解碼

編碼的過程是將字符轉(zhuǎn)換成字節(jié)流,解碼的過程是將字節(jié)流解析為字符。


理解了這些基本的術(shù)語概念后,我們就可以開始討論計算機的字符編碼的演進過程了。

從 ASCII 碼說起

說到字符編碼,要從計算機的誕生開始講起,計算機發(fā)明于美國,在英語世界里,常用字符非常有限,26個字母(大小寫)、10個數(shù)字、標點符號、控制符,這些字符在計算機中用一個字節(jié)的存儲空間來表示綽綽有余,因為一個字節(jié)相當于8個比特位,8個比特位可以表示256個符號。于是美國國家標準協(xié)會ANSI制定了一套字符編碼的標準叫 ASCII(American Standard Code for Information Interchange),每個字符都對應唯一的一個數(shù)字,比如字符 "A" 對應數(shù)字是65,"B" 對應 66,以此類推。最早 ASCII 只定義了128個字符編碼,包括96個文字和32個控制符號,一共128個字符只需要一個字節(jié)的7位就能表示所有的字符,因此 ASCII 只使用了一個字節(jié)的后7位,剩下最高位1比特被用作一些通訊系統(tǒng)的奇偶校驗。下圖就是 ASCII 碼字符編碼的十進制、二進制和字符的對應關(guān)系表

ascii

擴展的 ASCII:EASCII(ISO/8859-1)

然而計算機慢慢地普及到其他西歐地區(qū)時,發(fā)現(xiàn)還有很多西歐字符是 ASCII 字符集中沒有的,顯然 ASCII 已經(jīng)沒法滿足人們的需求了,好在 ASCII 字符只用了字節(jié)的7位 0×00~0x7F 共128個字符,于是他們在 ASCII 的基礎(chǔ)上把原來的7位擴充到8位,把0×80-0xFF這后面的128個數(shù)字利用起來,叫 EASCII ,它完全兼容ASCII,擴展出來的符號包括表格符號、計算符號、希臘字母和特殊的拉丁符號。然而 EASCII 時代是一個混亂的時代,各個廠家都有自己的想法,大家沒有統(tǒng)一標準,他們各自把最高位按照自己的標準實現(xiàn)了自己的一套字符編碼標準,比較著名的就有 CP437, CP437 是 始祖IBM PC、MS-DOS使用的字符編碼,如下圖:

 

眾多的 ASCII 擴充字符集之間互不兼容,這樣導致人們無法正常交流,例如200在CP437字符集表示的字符是 È ,在 ISO/8859-1 字符集里面顯示的就是 ╚,于是國際標準化組織(ISO)及國際電工委員會(IEC)聯(lián)合制定的一系列8位字符集的標準ISO/8859-1(Latin-1),它繼承了 CP437 字符編碼的128-159之間的字符,所以它是從160開始定義的,ISO-8859-1在 CP437 的基礎(chǔ)上重新定義了 160~255之間的字符。
iso8859-1

多字節(jié)字符編碼 GBK

ASCII 字符編碼是單字節(jié)編碼,計算機進入中國后面臨的一個問題是如何處理漢字,對于拉丁語系國家來說通過擴展最高位,單字節(jié)表示所有的字符已經(jīng)綽綽有余,但是對于亞洲國家來說一個字節(jié)就顯得捉襟見肘了。于是中國人自己弄了一套叫 GB2312的雙字節(jié)字符編碼,又稱GB0,1981 由中國國家標準總局發(fā)布。GB2312 編碼共收錄了6763個漢字,同時他還兼容 ASCII,GB 2312的出現(xiàn),基本滿足了漢字的計算機處理需要,它所收錄的漢字已經(jīng)覆蓋中國大陸99.75%的使用頻率,不過 GB2312 還是不能100%滿足中國漢字的需求,對一些罕見的字和繁體字 GB2312 沒法處理,后來就在GB2312的基礎(chǔ)上創(chuàng)建了一種叫 GBK 的編碼,GBK 不僅收錄了27484個漢字,同時還收錄了藏文、蒙文、維吾爾文等主要的少數(shù)民族文字。同樣 GBK 也是兼容 ASCII 編碼的,對于英文字符用1個字節(jié)來表示,漢字用兩個字節(jié)來標識。

Unicode 的問世

GBK僅僅只是解決了我們自己的問題,但是計算機不止是美國人和中國人用啊,還有歐洲、亞洲其他國家的文字諸如日文、韓文全世界各地的文字加起來估計也有好幾十萬,這已經(jīng)大大超出了ASCII 碼甚至GBK 所能表示的范圍了,雖然各個國家可以制定自己的編碼方案,但是數(shù)據(jù)在不同國家傳輸就會出現(xiàn)各種各樣的亂碼問題。如果只用一種字符編碼就能表示地球甚至火星上任何一個字符時,問題就迎刃而解了。是它,是它,就是它,我們的小英雄,統(tǒng)一聯(lián)盟國際組織提出了Unicode 編碼,Unicode 的學名是"Universal Multiple-Octet Coded Character Set",簡稱為UCS。它為世界上每一種語言的每一個字符定義了一個唯一的字符碼,Unicode 標準使用十六進制數(shù)字表示,數(shù)字前面加上前綴 U+,比如字母『A』的Unicode編碼是 U+0041,漢字『中』的Unicode 編碼是U+4E2D

Unicode有兩種格式:UCS-2和UCS-4。UCS-2就是用兩個字節(jié)編碼,一共16個比特位,這樣理論上最多可以表示65536個字符,不過要表示全世界所有的字符顯示65536個數(shù)字還遠遠不過,因為光漢字就有近10萬個,因此Unicode4.0規(guī)范定義了一組附加的字符編碼,UCS-4就是用4個字節(jié)(實際上只用了31位,最高位必須為0)。理論上完全可以涵蓋一切語言所用的符號。

Unicode 的局限

但是 Unicode 有一定的局限性,一個 Unicode 字符在網(wǎng)絡(luò)上傳輸或者最終存儲起來的時候,并不見得每個字符都需要兩個字節(jié),比如字符“A“,用一個字節(jié)就可以表示的字符,偏偏還要用兩個字節(jié),顯然太浪費空間了。

第二問題是,一個 Unicode 字符保存到計算機里面時就是一串01數(shù)字,那么計算機怎么知道一個2字節(jié)的Unicode字符是表示一個2字節(jié)的字符呢,例如“漢”字的 Unicode 編碼是 U+6C49,我可以用4個ascii數(shù)字來傳輸、保存這個字符;也可以用utf-8編碼的3個連續(xù)的字節(jié)E6 B1 89來表示它。關(guān)鍵在于通信雙方都要認可。因此Unicode編碼有不同的實現(xiàn)方式,比如:UTF-8、UTF-16等等。Unicode就像英語一樣,做為國與國之間交流世界通用的標準,每個國家有自己的語言,他們把標準的英文文檔翻譯成自己國家的文字,這是實現(xiàn)方式,就像utf-8。

具體實現(xiàn):UTF-8

UTF-8(Unicode Transformation Format)作為 Unicode 的一種實現(xiàn)方式,廣泛應用于互聯(lián)網(wǎng),它是一種變長的字符編碼,可以根據(jù)具體情況用1-4個字節(jié)來表示一個字符。比如英文字符這些原本就可以用 ASCII 碼表示的字符用UTF-8表示時就只需要一個字節(jié)的空間,和 ASCII 是一樣的。對于多字節(jié)(n個字節(jié))的字符,第一個字節(jié)的前n為都設(shè)為1,第n+1位設(shè)為0,后面字節(jié)的前兩位都設(shè)為10。剩下的二進制位全部用該字符的unicode碼填充。

code

以『好』為例,『好』對應的 Unicode 是597D,對應的區(qū)間是 0000 0800--0000 FFFF,因此它用 UTF-8 表示時需要用3個字節(jié)來存儲,597D用二進制表示是: 0101100101111101,填充到 1110xxxx 10xxxxxx 10xxxxxx 得到 11100101 10100101 10111101,轉(zhuǎn)換成16進制是 e5a5bd,因此『好』的 Unicode 碼 U+597D 對應的 UTF-8 編碼是 "E5A5BD"。你可以用 Python 代碼來驗證:

  1. >>> a = u"好" 
  2. >>> a 
  3. u'\u597d' 
  4. >>> b = a.encode('utf-8'
  5. >>> len(b) 
  6. >>> b 
  7. '\xe5\xa5\xbd' 

現(xiàn)在總算把理論說完了。再來說說 Python 中的編碼問題。Python 的誕生時間比 Unicode 要早很多,Python2 的默認編碼是ASCII,正因為如此,才導致很多的編碼問題。

  1. >>> import sys 
  2. >>> sys.getdefaultencoding() 
  3. 'ascii' 

所以在 Python2 中,源代碼文件必須顯示地指定編碼類型,否則但凡代碼中出現(xiàn)有中文就會報語法錯誤

  1. # coding=utf-8 
  2. 或者是: 
  3. # -*- coding: utf-8 -*- 

Python2 字符類型

在 python2 中和字符串相關(guān)的數(shù)據(jù)類型有 str 和 unicode 兩種類型,它們繼承自 basestring,而 str 類型的字符串的編碼格式可以是 ascii、utf-8、gbk等任何一種類型。

python-str.png

對于漢字『好』,用 str 表示時,它對應的 utf-8 編碼 是'\xe5\xa5\xbd',對應的 gbk 編碼是 '\xba\xc3',而用 unicode 表示時,他對應的符號就是u'\u597d',與u"好" 是等同的。

str 與 unicode 的轉(zhuǎn)換

在 Python 中 str 和 unicode 之間是如何轉(zhuǎn)換的呢?這兩種類型的字符串之間的轉(zhuǎn)換就是靠decode 和 encode 這兩個函數(shù)。encode 負責將unicode 編碼成指定的字符編碼,用于存儲到磁盤或傳輸?shù)骄W(wǎng)絡(luò)中。而 decode 方法是根據(jù)指定的編碼方式解碼后在應用程序中使用。

  1.  #從unicode轉(zhuǎn)換到str用 encode 
  2.  
  3. >>> b  = u'好' 
  4. >>> c = b.encode('utf-8'
  5. >>> type(c) 
  6. <type 'str'
  7. >>> c 
  8. '\xe5\xa5\xbd' 
  9.  
  10. #從str類型轉(zhuǎn)換到unicode用decode 
  11.  
  12. >>> d = c.decode('utf-8'
  13. >>> type(d) 
  14. <type 'unicode'
  15. >>> d 
  16. u'\u597d' 

UnicodeXXXError 錯誤的原因

在字符編碼轉(zhuǎn)換操作時,遇到最多的問題就是 UnicodeEncodeError 和 UnicodeDecodeError 錯誤了,這些錯誤的根本原因在于 Python2 默認是使用 ascii 編碼進行 decode 和 encode 操作,例如:

case 1

  1. >>> s = '你好' 
  2. >>> s.decode() 
  3. Traceback (most recent call last): 
  4.   File "<stdin>", line 1, in <module> 
  5. UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128) 

當把 s 轉(zhuǎn)換成 unicode 類型的字符串時,decode 方法默認使用 ascii 編碼進行解碼,而 ascii 字符集中根本就沒有中文字符『你好』,所以就出現(xiàn)了 UnicodeDecodeError,正確的方式是顯示地指定 UTF-8 字符編碼。

  1. >>> s.decode('utf-8'
  2. u'\u4f60\u597d' 

同樣地道理,對于 encode 操作,把 unicode字符串轉(zhuǎn)換成 str類型的字符串時,默認也是使用 ascii 編碼進行編碼轉(zhuǎn)換的,而 ascii 字符集找不到中文字符『你好』,于是就出現(xiàn)了UnicodeEncodeError 錯誤。

  1. >>> a = u'你好' 
  2. >>> a.encode() 
  3. Traceback (most recent call last): 
  4.   File "<stdin>", line 1, in <module> 
  5. UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128) 

case 2

str 類型與 unicode 類型的字符串混合使用時,str 類型的字符串會隱式地將 str 轉(zhuǎn)換成 unicode字符串,如果 str字符串是中文字符,那么就會出現(xiàn)UnicodeDecodeError 錯誤,因為 python2 默認會使用 ascii 編碼來進行 decode 操作。

  1. >>> s = '你好'  # str類型 
  2. >>> y = u'python'  # unicode類型 
  3. >>> s + y    # 隱式轉(zhuǎn)換,即 s.decode('ascii') + u 
  4. Traceback (most recent call last): 
  5.   File "<stdin>", line 1, in <module> 
  6. UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128) 

正確地方式是顯示地指定 UTF-8 字符編碼進行解碼

  1. >>> s.decode('utf-8') +y 
  2. u'\u4f60\u597dpython' 

亂碼

所有出現(xiàn)亂碼的原因都可以歸結(jié)為字符經(jīng)過不同編碼解碼在編碼的過程中使用的編碼格式不一致,比如:

  1. # encoding: utf-8 
  2.  
  3. >>> a='好' 
  4. >>> a 
  5. '\xe5\xa5\xbd' 
  6. >>> b=a.decode("utf-8"
  7. >>> b 
  8. u'\u597d' 
  9. >>> c=b.encode("gbk"
  10. >>> c 
  11. '\xba\xc3' 
  12. >>> print c 
  13. �� 

utf-8編碼的字符‘好’占用3個字節(jié),解碼成Unicode后,如果再用gbk來解碼后,只有2個字節(jié)的長度了,最后出現(xiàn)了亂碼的問題,因此防止亂碼的最好方式就是始終堅持使用同一種編碼格式對字符進行編碼和解碼操作。

decode-encode 

責任編輯:龐桂玉 來源: 51CTO博客
相關(guān)推薦

2020-11-27 08:02:41

Promise

2017-11-20 11:05:23

數(shù)據(jù)庫MongoDB索引

2019-10-11 08:41:35

JVM虛擬機語言

2025-02-11 00:00:10

Base64編碼二進制

2021-04-25 10:45:59

Docker架構(gòu)Job

2018-11-30 10:00:53

Python字符串編程語言

2021-09-08 17:42:45

JVM內(nèi)存模型

2020-03-18 13:40:03

Spring事數(shù)據(jù)庫代碼

2016-12-08 15:36:59

HashMap數(shù)據(jù)結(jié)構(gòu)hash函數(shù)

2010-06-01 15:25:27

JavaCLASSPATH

2020-07-21 08:26:08

SpringSecurity過濾器

2009-11-18 12:38:04

PHP字符串函數(shù)

2021-01-06 14:15:42

線程池Java代碼

2019-07-24 08:49:36

Docker容器鏡像

2024-03-04 15:05:37

2023-10-19 11:12:15

Netty代碼

2009-09-25 09:14:35

Hibernate日志

2013-09-22 14:57:19

AtWood

2021-02-17 11:25:33

前端JavaScriptthis

2019-06-25 10:32:19

UDP編程通信
點贊
收藏

51CTO技術(shù)棧公眾號

青青草影院在线观看| 欧美精品在线免费| 欧美激情成人网| 色的视频在线免费看| 国产成人免费视频网站 | 无码人妻丰满熟妇啪啪欧美| 欧美美女被草| 精品久久久中文| 中文字幕剧情在线观看一区| 国产精品自拍视频一区| 欧美亚洲激情在线| 国产一区三区在线播放| 日韩一区欧美| 国产精品少妇自拍| 成人在线免费网站| 一级黄色av片| 亚洲视频精品| 在线一区二区日韩| 国产情侣久久久久aⅴ免费| 欧美色网在线| 亚洲成av人片| 大桥未久一区二区三区| 国产中文在线视频| 99久久99精品久久久久久| 国产综合视频在线观看| www.色国产| 亚洲国产1区| 久久韩国免费视频| 阿v天堂2014| 免费av一区二区三区四区| 欧美xfplay| aaaaaaaa毛片| 国产精品亚洲四区在线观看| 色哟哟一区二区三区| 国产va亚洲va在线va| 成人直播在线| 亚洲色图欧洲色图婷婷| 亚洲精品欧洲| 天堂视频中文在线| 精品成人av一区二区三区| 久久久久久噜噜噜久久久精品| 欧美一区二区激情| 中文字幕日本在线| 国产人久久人人人人爽| 久久久久久久久久久久久久久久av | 亚洲精品美女免费| 善良的小姨在线| 欧洲亚洲精品| 欧美日韩另类一区| 色悠悠久久综合网| 成人国产精品| 欧美日韩专区在线| 自拍偷拍21p| 日韩欧乱色一区二区三区在线| 91福利小视频| 亚洲一区二区三区四区五区xx| 久久人体大尺度| 日韩欧美在线观看| 欧美xxxxx在线视频| 电影一区二区三区| 精品1区2区3区| 手机av在线免费| 国产精品成人3p一区二区三区| 337p亚洲精品色噜噜狠狠| 涩涩网站在线看| 亚洲超碰在线观看| 亚洲国产成人精品一区二区| 亚洲av成人片色在线观看高潮| 欧美精品中文字幕亚洲专区| 亚洲免费视频一区二区| 国产人妻大战黑人20p| 91影院成人| 欧美福利视频在线| 日本三级小视频| 男女男精品视频| 99久久综合狠狠综合久久止| 色屁屁草草影院ccyycom| 久久久久久久久久看片| 亚洲欧美影院| 成人免费高清观看| 欧美性猛交xxxx乱大交蜜桃| 国产精品wwwww| 亚洲色图综合| 亚洲激情电影中文字幕| 影音先锋制服丝袜| 欧美国产精品| 国产成人久久久| 国产99久一区二区三区a片| av在线不卡免费看| 在线天堂一区av电影| missav|免费高清av在线看| 色天天综合色天天久久| 日本中文字幕精品| 国产在线日韩精品| 欧美高清视频在线| 中文字幕乱码视频| 成人性生交大片免费看中文| 日韩精品久久久免费观看| 宅男在线观看免费高清网站| 色国产综合视频| 精品人妻人人做人人爽夜夜爽| 亚洲国产网址| 欧美大成色www永久网站婷| 欧美精品一二三四区| 国产剧情在线观看一区二区| 欧美国产二区| 日本一本在线免费福利| 欧美色偷偷大香| 亚洲久久久久久| 91精品国产麻豆国产在线观看 | aaa免费在线观看| 欧美男男激情videos| 在线不卡的av| 69视频在线观看免费| 亚洲视屏一区| 成人有码视频在线播放| 国产1区2区3区在线| 亚洲va欧美va人人爽| 九九热99视频| 精品国产精品国产偷麻豆| 97成人超碰免| 亚洲精品一区二区三区四区| 自拍偷拍国产精品| 视色视频在线观看| 欧洲福利电影| 日本精品va在线观看| 欧美一级免费片| 一区2区3区在线看| 国产精品久久久久久9999| 欧美久久综合网| 国产98色在线| 免费一级毛片在线观看| 精品久久久香蕉免费精品视频| 麻豆tv在线观看| 国产综合网站| 99视频在线| 蜜臀av在线播放| 91精品国产综合久久小美女| 特级西西人体高清大胆| 免费人成精品欧美精品| 亚洲高清精品中出| 国产精品高清乱码在线观看| 亚洲欧美日韩区| 在线观看 亚洲| 国产视频一区在线观看 | 国产成人综合精品三级| 热这里只有精品| 国产精品久久久久久久久久辛辛| 精品国产一区二区三区久久久狼| 一级黄在线观看| 中文字幕中文字幕中文字幕亚洲无线 | 精品久久sese| 久久影院午夜精品| 亚洲男人第一av网站| 99精品人妻国产毛片| 久久久99久久精品欧美| 成人黄色一区二区| 久久美女视频| 亚洲综合色av| av中文字幕在线观看第一页| 亚洲国产精品久久精品怡红院| 日韩熟女精品一区二区三区| www国产亚洲精品久久麻豆| 亚洲乱码中文字幕久久孕妇黑人| 国产欧美一区| 成人h视频在线观看播放| а天堂中文在线官网| 精品国产一二三区| 黄色一级片免费在线观看| 久久久777精品电影网影网| 玖玖爱视频在线| 欧美日韩国内| 欧美综合77777色婷婷| 日韩黄色碟片| 97色在线播放视频| avtt在线播放| 精品久久久久av影院| 欧美一区二区激情视频| 国产精品水嫩水嫩| 韩国一区二区三区四区| 午夜在线一区| 99精品一级欧美片免费播放| 国产精品玖玖玖在线资源| 日韩av色在线| bt在线麻豆视频| 精品亚洲男同gayvideo网站| 91久久久久久久久久久久| 午夜激情久久久| 最新日韩免费视频| 99精品久久99久久久久| 日本高清久久久| 激情成人综合| 在线综合视频网站| 在线日本制服中文欧美| 91天堂在线观看| av综合电影网站| 欧美高清视频免费观看| av资源网在线观看| 亚洲国产欧美一区二区丝袜黑人| 在线免费看毛片| 狠狠色狠狠色综合日日小说| 国产美女久久久久久| 久久日一线二线三线suv| 久久久久亚洲av无码网站| 毛片一区二区三区| 播放灌醉水嫩大学生国内精品| 亚洲免费二区| 亚洲欧洲日韩精品| 人人网欧美视频| 亚洲最大成人免费视频| 成人一级视频| 欧美一区二区三区免费视| 亚洲综合图区| 久久亚洲精品网站| 番号在线播放| 亚洲午夜精品久久久久久性色| 韩国av永久免费| 欧美一区二区在线不卡| 中文字幕一区二区人妻痴汉电车| 欧美日韩激情视频8区| 九九热只有精品| 日韩理论片中文av| 亚洲天堂最新地址| 国产欧美一区二区三区网站| 国产黑丝一区二区| 国产v日产∨综合v精品视频| 一二三级黄色片| 久久精品国产99国产精品| 久久人妻精品白浆国产| 国产精品日韩| 噜噜噜久久亚洲精品国产品麻豆 | 99视频在线免费播放| 欧美三级免费| 国内少妇毛片视频| 欧美性色综合| www.av片| 亚洲一区视频| 女性隐私黄www网站视频| 国产精品呻吟| 男女曰b免费视频| 日韩精品电影在线| 嫩草av久久伊人妇女超级a| 天堂影院一区二区| 色婷婷综合久久久久中文字幕 | 91在线免费视频| 国产成人久久精品一区二区三区| 国产一区香蕉久久| 9999精品视频| 亚洲自拍偷拍福利| 91成人短视频| 九九九九精品| 神马电影久久| 亚洲图片欧洲图片日韩av| 国产精品久久久久蜜臀| 欧美 另类 交| 国内自拍视频一区二区三区| 男人添女人下部视频免费| 在线欧美福利| 国产福利视频在线播放| 日本成人在线不卡视频| 天天看片天天操| 国产大片一区二区| 醉酒壮男gay强迫野外xx| 国产亚洲精品aa| 日本美女黄色一级片| 亚洲欧美日韩一区| 精品在线视频免费| 在线一区二区三区| 国产精品日韩无码| 亚洲国产精品久久久久| 国内精品一区视频| 久久视频在线免费观看| heyzo高清国产精品| 国产精品444| 蜜桃精品视频| 欧美一级爱爱| 久久久久久美女精品| 国产不卡一区二区视频| 日本成人中文字幕| 国产一精品一aⅴ一免费| 26uuu精品一区二区| 日本不卡一二区| 欧美日韩国产一区二区| 一级片aaaa| 亚洲精品第一国产综合精品| 91大神在线网站| 久久久久久久999精品视频| 另类中文字幕国产精品| 国产 高清 精品 在线 a | 在线视频欧美日韩精品| 性直播体位视频在线观看| 日本欧美一级片| 久久综合偷偷噜噜噜色| 欧美极品日韩| 国内精品久久久久久久影视麻豆| 国产v亚洲v天堂无码久久久| 国产精品99久久久久久宅男| 成人免费av片| 亚洲一区二区不卡免费| 中文永久免费观看| 亚洲国产欧美自拍| 日日夜夜天天综合入口| 国产精品久久久久久亚洲影视| 北条麻妃一区二区三区在线观看| 亚洲成人第一| 久久蜜桃精品| 屁屁影院国产第一页| 亚洲免费av观看| 真实新婚偷拍xxxxx| 亚洲精品国产美女| 色黄网站在线观看| 国产日韩欧美在线| 国产欧美日韩精品一区二区免费| 霍思燕三级露全乳照| 国产精品77777| 大地资源高清在线视频观看| 色婷婷亚洲精品| 天堂av在线播放| 久久乐国产精品| 欧洲一区在线| 自拍偷拍99| 美女精品一区二区| 久久精品—区二区三区舞蹈| 欧美视频免费在线| 天堂在线资源网| 欧美激情三级免费| 一区二区三区四区精品视频 | 超碰人人干人人| 一本大道综合伊人精品热热| 五月天婷婷社区| 久久久久久久国产精品| 亚洲图色一区二区三区| 日本一道在线观看| 国产精品自产自拍| 男女羞羞免费视频| 日韩午夜av一区| 污网站在线免费看| 成人午夜电影在线播放| 午夜国产欧美理论在线播放| 欧美人与性动交α欧美精品| 一区二区三区在线视频免费| www.久久久久久久久久| 欧美二区乱c黑人| 午夜日韩影院| 国产毛片视频网站| 99国产一区二区三精品乱码| 日韩毛片在线播放| 日韩国产中文字幕| 全亚洲第一av番号网站| 日韩av高清| 精品亚洲国内自在自线福利| 国产精品嫩草影院俄罗斯| 日韩一区二区在线免费观看| jizz性欧美10| 国产成人精品福利一区二区三区| 亚洲精品一级| 在线 丝袜 欧美 日韩 制服| 在线亚洲免费视频| 嫩草在线视频| 高清不卡日本v二区在线| 99riav1国产精品视频| www.av欧美| 欧美日本韩国一区二区三区视频 | 亚洲最新在线观看| 香蕉国产在线视频| 国产精品r级在线| 99久久综合| 丰满少妇xbxb毛片日本| 福利一区福利二区微拍刺激| wwwxxx在线观看| 2014国产精品| 亚洲欧美日本国产专区一区| 日本视频在线免费| 日韩精品中文字幕在线一区| 深夜av在线| 伊人久久青草| 成人少妇影院yyyy| 欧美高清69hd| 欧美精品福利视频| 国产亚洲第一伦理第一区| 肉色超薄丝袜脚交| 天天影视网天天综合色在线播放| 成全电影播放在线观看国语| 91色精品视频在线| 亚洲欧美高清| 1024手机在线视频| 亚洲欧洲激情在线| 欧美成人精品午夜一区二区| 国产精品宾馆在线精品酒店| 日韩毛片高清在线播放| 污污视频在线免费看| 国产精品一香蕉国产线看观看| 欧美日韩亚洲一区二区三区在线| av网站免费在线看| 精品国偷自产国产一区| 欧美亚洲二区| 四虎永久在线精品无码视频| 亚洲一区二区三区四区五区中文| h网站视频在线观看| 国产一区自拍视频|