【问题标题】:Encode a string to gbk in Python在 Python 中将字符串编码为 gbk
【发布时间】:2011-06-13 06:49:22
【问题描述】:

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

例如:

>>> 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,我可以看到 gbk.py 和 lib/encodings 中的其他文件

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

【问题讨论】:

    标签: python encoding character gbk


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      来自Wikipedia page:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-26
        • 2016-05-16
        • 1970-01-01
        • 2014-05-21
        相关资源
        最近更新 更多