在Python中将字符串编码为gbk

时间:2011-01-21 16:50:59

标签: python encoding character gbk

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

例如:

>>> 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 / encodings中看到gbk.py和其他文件

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

来自Wikipedia page:

  

字符编码为1或2   字节。 00-7F范围内的字节是a   单字节意味着同样的事情   就像在ASCII中一样。严格   说来,有96个字符和   此范围内的32个控制代码。

所以不,你的ASCII字符测试字符串不应该编码为不同的东西(至少不是GBK,我没有检查变种)。