为什么 Python 默认使用 ASCII 编码?

Sam*_*Lee 1 python ascii utf-8 character-encoding

由于默认的 ASCII 编码,我在 Python 中遇到了很多错误。我总是要记得把它切换到 utf8

我想知道,默认的 ASCII 编码有什么理由或好处吗?它似乎比 utf8 更糟糕,并且会导致烦人的错误。我总是切换到 utf8 是不是遗漏了什么?

Mar*_*ers 5

因为 Python 2 Unicode 是在 UTF-8 普及之前构建的(早在 1999-2000 年)。另一方面,几乎所有使用 8 位编解码器的目标平台都能理解 ASCII。

如果您查看Wikipedia UTF-8 采用图,您会发现 UTF-8 直到 2006 年才真正流行起来:

来自维基百科的 UTF-8 增长图

只有使用 Python 3 才能更改此默认值;隐式编码和解码消失了,默认的源代码编码已更改为 UTF-8(打印、文件 I/O 和文件系统名称的默认值取决于系统,就像在 Python 2 中一样)。