【发布时间】:2020-04-12 11:10:52
【问题描述】:
让我们以字符 ñ (unicode-table) 为例。
当我运行 ord('ñ') 时,我会返回 241 - 即它是第 241 个编码字符。
当我运行hex(ord('ñ')) 时,我会返回0xf1,这是241 的十六进制值。
那么为什么当我运行'ñ'.encode('utf-8') 时,我会以十进制返回b'\xc3\xb1' 或50097?我们不是刚刚确认ñ 是f1(十六进制)还是241(十进制)?
【问题讨论】:
-
TL;DR:UTF-8 并不简单地将 Unicode 码位值直接编码为字节,它比这要复杂一些。
标签: python utf-8 character-encoding