我试图看看不同的字符串在不同的编码中会是什么样子......
例如:
>>> 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>
答案 0 :(得分:2)
只要使用字节值0-127,这些编码就等同于ASCII。 UTF-8也是如此。要真正看到差异,请尝试一些实际的中文。
答案 1 :(得分:1)
字符编码为1或2 字节。 00-7F范围内的字节是a 单字节意味着同样的事情 就像在ASCII中一样。严格 说来,有96个字符和 此范围内的32个控制代码。
所以不,你的ASCII字符测试字符串不应该编码为不同的东西(至少不是GBK,我没有检查变种)。