遇到的編碼問題

 

# 把一個字符串變成 Unicode 碼位的列表
>>> symbols = '$¢£¥€¤'
>>> codes = [ord(symbol) for symbol in symbols]
>>> codes
[36, 162, 163, 165, 8364, 164]
#`編碼自動檢測`_ 功能可以在Beautiful Soup以外使用,檢測某段未知編碼時,可以使用這個方法:

from bs4 import UnicodeDammit
dammit = UnicodeDammit("Sacr\xc3\xa9 bleu!")
print(dammit.unicode_markup)
# Sacré bleu!
dammit.original_encoding
# 'utf-8'
# body = response.body.decode('utf-8', 'ignore')


response = requests.get(url,headers=headers)
response.encoding = 'gbk'
res = response.text
print(res)

 解碼 unicode 網頁編碼

# 輸出的文件是Unicode
# \u6d77\u5c14\u7535\u5668\u62df\u79c1\u6709\u5316轉爲中文
r = requests.get(url).content.decode("unicode-escape")
a = r.encode('utf8').decode('utf8')
import html

a = 'zoneAliasName:"英德西法意阿土站-YQ",
'
print(html.unescape(a))
# 
r = requests.get(url, headers=head)
r.encoding = r.apparent_encoding
content = r.text

 

1366, "Incorrect string value: '\\xF0\\x9F\\x91\\x87\\xF0\\x9F'

因爲mysql不能識別4個字節的utf8編碼的字符,拋出了異常,或者內容中出現了特殊表情字符,這應該也是問題的根源。、��、類似於這種4個字節,將對應字符類型換成將對應的數據類型改爲utf8mb4類型,同時連接類型也要改成utf8mb4_general_ci。
 

python連接數據庫代碼也要修改 charset 爲 utf8mb4

python 代碼形式(3.6) 
 conn=pymysql.connect( 
       host=’127.0.0.1’, 
       port=3306, 
       user=’root’, 
       passwd=’343434’, 
       db=’kmind8’, 
       charset=’utf8mb4’, 
   )

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章