我正在尝试看看不同的字符串在不同的编码中会是什么样子……
例如:
>>> 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‘以外的东西吗?
我有Python2.7,我可以在lib/encodings中看到gbk.py和其他文件
我想知道我在输出中没有看到任何变化,是因为这些字母在编码中显示相同,还是因为我需要以某种方式启用这些编码的使用(需要某种导入?)……
发布于 2011-01-22 00:55:05
只要只使用字节值0-127,这些编码就等同于ASCII。UTF-8也是如此。要真正看到不同之处,请尝试一些真正的中文。
发布于 2011-01-22 00:56:31
从Wikipedia page:
字符编码为1或2个字节。00-7F范围内的字节是单个字节,其含义与ASCII中的相同。严格来说,这个范围内有96个字符和32个控制代码。
所以不,你的ASCII字符的测试字符串不应该编码成不同的东西(至少对于GBK不是这样的,我没有检查变体)。
https://stackoverflow.com/questions/4761442
复制相似问题