我试图看看不同编码中不同的字符串会是什么样...

例如:

>>> str1 = "asdf"
>>> str1.encode('utf-16')
'\xff\xfea\x00s\x00d\x00f\x00'
>>> str1.encode('base64')
'YXNkZg==\n'

所有这些都给了我我想要的。

但是我想看看GBK,GB2312或GB18030中的某些字符串会是什么样。

>>> str1.encode('gbk')
'asdf'
>>> str1.encode('gb2312')
'asdf'
>>> str1.encode('gb18030')
'asdf'

输出不应该是“ ASDF”以外的其他东西吗?

我有python 2.7,我可以在lib/condings中看到gbk.py和其他文件

我想知道我是否看到输出没有变化,因为这些字母在该编码中会显示相同的内容,或者因为我需要以某种方式启用这些编码(需要某种导入?)... ... ...

有帮助吗?

解决方案

只要仅使用字节值0-127,这些编码等效于ASCII。 UTF-8也是如此。为了真正看到差异,请尝试一些实际的中文。

其他提示

来自 Wikipedia页面:

字符编码为1或2个字节。 00–7F范围内的字节是一个单个字节,与ASCII中的字节相同。严格来说,此范围内有96个字符和32个控制代码。

因此,不,您的ASCII字符串不应编码为不同的东西(至少不适合GBK,我没有检查品种)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top