精品欧美一区二区三区在线观看 _久久久久国色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一区二区在线播放| 综合国产在线| 狠狠色狠色综合曰曰| 欧美重口乱码一区二区| 亚洲一级黄色大片| 欧美精品一级| 亚洲色图综合久久| 欧美激情第一区| 高清视频在线观看三级| 欧美国产乱子伦 | 一级日韩一区在线观看| 亚洲国产日韩在线观看| 日本不卡视频在线观看| 欧美精品xxx| 成人黄色短视频| 全球av集中精品导航福利| 欧美日韩另类一区| 欧美黄色免费影院| 日韩影视在线| 国产精品你懂的在线欣赏| 久久国产精品精品国产色婷婷| 亚洲综合网av| 丝袜亚洲另类欧美| 97超级碰碰碰久久久| 九九这里只有精品视频| 九九综合在线| 亚洲精品国产精品久久清纯直播 | 国产成人一区二区三区影院在线| 日韩免费看片| 亚洲色图偷窥自拍| 一起草在线视频| 欧美另类中文字幕| 欧美午夜精品免费| 成年人黄色片视频| 黄色漫画在线免费看| 亚洲激情自拍偷拍| 一区二区视频在线观看| 国产精品一级伦理| 2020日本不卡一区二区视频| 国产不卡一区二区在线观看 | 欧美电影免费观看| 午夜欧美一区二区三区在线播放| 91九色国产ts另类人妖| 日本暖暖在线视频| 国产精品少妇自拍| 亚洲午夜精品久久| 自拍视频在线| 国产精品麻豆网站| 亚洲精品不卡| 在线免费观看黄| 久久久www成人免费毛片麻豆| 国产一区二区视频在线免费观看| 亚洲AV无码一区二区三区少妇 | 中文字幕天堂网| 日韩成人在线观看视频| 欧美精品v日韩精品v韩国精品v| 美女网站视频黄色| 国精品产品一区| 777色狠狠一区二区三区| 牛夜精品久久久久久久| www.一区| 日韩亚洲电影在线| 美女伦理水蜜桃4| 欧美成人午夜77777| 亚洲国产欧美一区二区三区同亚洲| 国产69视频在线观看| 精品精品国产毛片在线看| 亚洲第一在线视频| 一区二区不卡免费视频| 国产精品嫩草影院在线看| 亚洲欧洲一区二区三区在线观看| 人妻视频一区二区| 久久久久久久久99精品大| 久久99国产精品自在自在app | 日本不卡视频| 一区二区三区中文字幕精品精品 | 日韩电影免费观看在| 国产二区在线播放| 亚洲丝袜精品丝袜在线| 97碰在线视频| 成人亚洲欧美| 正在播放亚洲一区| 亚洲色偷偷色噜噜狠狠99网| 偷拍一区二区| 精品国产美女在线| 国产在线视频第一页| 久久久www| 91九色国产社区在线观看| 乱精品一区字幕二区| 2017欧美狠狠色| 国产精品av免费| segui88久久综合9999| 在线观看一区二区视频| 熟妇无码乱子成人精品| 日韩影视高清在线观看| 久久精品精品电影网| 国产大片aaa| 日韩av二区在线播放| 成人自拍偷拍| 在线视频婷婷| 黄色一区二区三区| 亚洲18在线看污www麻豆| 免费萌白酱国产一区二区三区| 中文字幕国产日韩| 国产一级视频在线观看| 日本欧美一区二区在线观看| 国产亚洲精品自在久久| 青青影院在线观看| 日韩欧美中文在线| 黑森林av导航| 天天做天天爱天天综合网2021 | 午夜影院在线看| 久久精品国产亚洲a| 久久国产一区| 秋霞在线视频| 欧美一区二区播放| 精品人体无码一区二区三区| 亚洲一区二区三区高清| 97久久精品午夜一区二区| 1024视频在线| 在线免费视频一区二区| av在线播放网址| 欧美一区国产在线| 国产精品直播网红| 免费a在线观看| 亚洲电影在线免费观看| 天天av天天操| 99精品一区| 国产精品偷伦免费视频观看的| 天天摸天天碰天天爽天天弄| 亚洲精品大片www| 国产无遮挡猛进猛出免费软件 | 国产**成人网毛片九色| 特级毛片在线免费观看| 成人看片毛片免费播放器| 日韩精品视频观看| 久久高清免费视频| 北条麻妃一区二区三区| 韩国无码av片在线观看网站| 成人精品在线| 另类少妇人与禽zozz0性伦| 亚洲系列第一页| 国产欧美一区二区精品性色超碰| 黄色a级片免费| 西瓜成人精品人成网站| 1769国产精品| 三级理论午夜在线观看| 精品国产鲁一鲁一区二区张丽| 中文字幕在线视频播放| 一本色道88久久加勒比精品| 国产传媒一区二区| av资源新版天堂在线| 精品国产一区二区亚洲人成毛片 | 在线免费av电影| 欧美日韩另类国产亚洲欧美一级| 极品蜜桃臀肥臀-x88av| 久久99精品久久久久婷婷| 中文字幕精品一区日韩| www欧美在线观看| 欧美情侣性视频| 国精产品乱码一区一区三区四区| 亚洲国产一区二区在线播放| 国产美女视频免费观看下载软件| 国产模特精品视频久久久久| 欧美日韩一区二区三区在线观看免| 三上悠亚一区二区| 最近2019中文字幕一页二页| 97在线播放免费观看| 伊人性伊人情综合网| 先锋资源av在线| 日本91福利区| 中国一级大黄大黄大色毛片| 亚洲日本一区二区三区在线| 91精品国产91久久久| 韩国精品视频| 欧美精品九九99久久| 久久久国产精品黄毛片| 91免费小视频| www.色就是色.com| 99国产精品| 水蜜桃亚洲精品| 亚洲成人偷拍| 国产999精品| 在线免费观看a视频| 亚洲高清在线观看| 中文字幕资源网| 亚洲综合免费观看高清完整版在线 | 国产情侣呻吟对白高潮| 专区另类欧美日韩| 一级特黄a大片免费| 久久国产乱子精品免费女| 免费cad大片在线观看| 亚洲综合图色| 亚洲va久久久噜噜噜| 亚洲女同志freevdieo| 日韩中文在线观看| 日本中文字幕一区二区有码在线| 欧美美女激情18p| 久久久午夜影院| 亚洲天堂a在线| 舐め犯し波多野结衣在线观看| 精品在线免费视频| 虎白女粉嫩尤物福利视频| 雨宫琴音一区二区三区| 日韩成人在线资源| 免费看成人人体视频| 亚洲自拍偷拍区| 3d性欧美动漫精品xxxx软件| 欧美激情中文网| 在线日本视频| 亚洲视频欧洲视频| 黄色美女一级片| 欧美精品成人一区二区三区四区| 亚洲午夜18毛片在线看| 亚洲黄色在线视频| 中文乱码字幕高清一区二区| 91碰在线视频| 国产白袜脚足j棉袜在线观看| 久久91精品国产91久久小草| 久久久久狠狠高潮亚洲精品| 韩国在线一区| 欧美 亚洲 视频| 91精品一区二区三区综合在线爱| 青娱乐一区二区| 激情小说亚洲图片| 高清免费日韩| 亚洲一区二区免费在线观看| 国产在线不卡精品| 亚洲www啪成人一区二区| 欧美有码在线观看视频| 99thz桃花论族在线播放| 久久国产精品视频| www在线视频| 久久久精品在线观看| 欧美黄色激情| 久久韩剧网电视剧| 日本最新在线视频| 日日噜噜噜夜夜爽亚洲精品 | 国产精品全国免费观看高清 | 国产免费av高清在线| 精品亚洲精品福利线在观看| 日韩一级中文字幕| 亚洲成人亚洲激情| 日韩一级片免费看| 亚洲精品自拍偷拍| 男人的天堂在线免费视频| 国产丝袜一区视频在线观看| 午夜在线观看视频18| 日韩av在线最新| 日本福利午夜视频在线| 亚洲欧美成人在线| 精品三级久久久久久久电影聊斋| 亚洲色图25p| av在线第一页| 久久影视电视剧免费网站| 成人影欧美片| 欧美精品18videosex性欧美| 国产不卡人人| 国产精品久久久久aaaa九色| 国产极品一区| 亚洲一区二区三区四区在线播放| 一区二区三区国产好| 国产精品免费一区二区三区观看| 欧美理伦片在线播放| 欧美一区二区三区成人久久片| 日韩88av| 成人在线视频一区二区三区| 亚洲国产综合在线看不卡| 欧美a在线视频| 日本不卡在线视频| www.亚洲自拍| www.久久精品| 午夜影院黄色片| 一区二区三区四区不卡在线| 国产亚洲精品成人| 日韩欧美亚洲成人| 国产美女主播在线观看| 欧美精品一区二区三区蜜桃视频 | 欧美高清在线一区二区| 动漫性做爰视频| 岛国av一区二区三区| 中文字幕一区二区人妻痴汉电车| 日韩一区二区免费在线观看| 性感美女视频一二三| 中文字幕无线精品亚洲乱码一区| 色婷婷在线播放| 欧日韩在线观看| 91精品国产色综合久久不卡粉嫩| 国产欧美欧洲| 欧美大人香蕉在线| 国精产品一区一区三区视频| 美女爽到高潮91| 中文字幕第3页| 中文字幕一区二区三区蜜月| 好吊操这里只有精品| 欧美日韩小视频| 亚洲av成人无码久久精品老人| 在线观看成人黄色| 成年男女免费视频网站不卡| 成人激情综合网| 一区二区三区视频免费观看 | 日韩精品成人一区二区在线| 精品人妻一区二区三区免费| 久久久久久久久久电影| 久久久久免费看| 欧美乱熟臀69xxxxxx| 青青草免费观看免费视频在线| 免费97视频在线精品国自产拍| 久久野战av| 久久er99热精品一区二区三区 | 波多野结衣家庭教师在线播放| 精品制服美女丁香| 亚洲国产日韩一区无码精品久久久| 亚洲一二三四在线| 国产免费久久久| 日韩在线观看网站| 亚洲伦乱视频| 麻豆一区区三区四区产品精品蜜桃| 欧美成人日本| 黄色片免费网址| 国产精品国产自产拍高清av| 中文字幕高清在线免费播放| 亚洲福利小视频| 爱看av在线| 99视频日韩| 午夜日韩av| 无码国产精品一区二区高潮| 国产精品家庭影院| 一区二区三区精| 色黄久久久久久| 精品久久在线| 亚洲一区二区三区色| 裸体一区二区三区| 超碰人人人人人人人| 欧美日韩一区二区三区四区五区| 黄色片在线免费看| 欧美与黑人午夜性猛交久久久| 国产精品男女| 国产 日韩 欧美在线| 国产成人免费视频网站| 欧美激情一区二区视频| 日韩三级精品电影久久久| 在线中文字幕视频观看| 91沈先生播放一区二区| 欧美高清不卡| 97精品人人妻人人| 精品动漫一区二区三区| 十九岁完整版在线观看好看云免费| 97涩涩爰在线观看亚洲| 欧美大片网址| 男人操女人免费| 中文天堂在线一区| 91久久久久久久久久久久| 精品国内亚洲在观看18黄 | 日韩精品电影在线观看| 国产真人做爰视频免费| 欧美日本精品一区二区三区| 毛片在线不卡| 成人情视频高清免费观看电影| 欧美日韩综合| 朝桐光av一区二区三区| 色偷偷成人一区二区三区91| h视频网站在线观看| 亚洲精品欧美极品| 亚洲电影在线| 成人免费网站黄| 欧美手机在线视频| 在线看福利影| 久久一区二区精品| 欧美96一区二区免费视频| 久久久久久久久久久久久女过产乱| 精品乱人伦小说| av高清不卡| 91免费视频黄| 91小视频在线观看| 亚洲字幕av一区二区三区四区| 欧美成在线观看| 免费av一区二区三区四区| 欧美激情国内自拍| 欧美日韩亚洲成人| 老司机精品视频在线观看6| 国产三区精品| 另类小说视频一区二区| 免费网站看av| 亚洲欧洲国产精品| 欧美精品三级在线| 99视频精品免费| 亚洲一线二线三线视频| 国产精品久久久久久久龚玥菲 | 天堂一区在线观看| 亚洲va欧美va国产va天堂影院| 国产一二三区在线视频| 成人av免费在线看| 日本系列欧美系列| 国产无套在线观看| 精品久久久av| 神马影视一区二区| 久草视频福利在线| 欧美精品亚洲二区| 日韩欧美看国产|