小编kwk*_*892的帖子

UnicodeEncodeError: 'utf-8' 编解码器无法对位置 0-15 中的字符进行编码:不允许代理

我在尝试打印 unicode 的结果时遇到问题,这是我尝试过的

data = u"\ud835\udc6a\ud835\udc89\ud835\udc90\ud835\udc84\ud835\udc8c"
result = data.encode('utf-8', 'surrogatepass') 
#b'\xed\xa0\xb5\xed\xb1\xaa\xed\xa0\xb5\xed\xb2\x89\xed\xa0\xb5\xed\xb2\x90\xed\xa0\xb5\xed\xb2\x84\xed\xa0\xb5\xed\xb2\x8c'
result.decode('utf-8')
#UnicodeDecodeError: 'utf-8' codec can't decode byte 0xed in position 0: invalid continuation byte

Run Code Online (Sandbox Code Playgroud)

根据 Charbase,\udc90是无效字符 https://charbase.com/dc90-unicode-invalid-character

我可以通过这个网站转换 unicode:https : //www.online-toolz.com/tools/text-unicode-entities-convertor.php在“Decode/Unescape Unicode Entities”部分下

这是结果的屏幕截图

在此处输入图片说明

我怎样才能打印出这个 unicode?我正在从 API 接收数据并希望将其存储在 MySQL 数据库中。目前,MySQL 数据库中的结果是 ???????????

python unicode encoding utf-8 python-3.x

3
推荐指数
1
解决办法
6477
查看次数

标签 统计

encoding ×1

python ×1

python-3.x ×1

unicode ×1

utf-8 ×1