遇到的编码问题

 

# 把一个字符串变成 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’, 
   )

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值