【问题标题】:Get a sequence of UTF-8 characters in hex from a unicode string从 unicode 字符串中获取十六进制的 UTF-8 字符序列
【发布时间】:2017-04-19 19:07:27
【问题描述】:

假设我有一个 UTF-8 字符串:

u"Some String"

现在我想要的就是把上面的这个字符串转换成一个 UTF-8 字符的字符串,但是用十六进制表示,所以它看起来像这样:

"53 6F 6D 65 20 53 74 72 69 6E 67"

如何在 Python 2.7 中实现这一点?

【问题讨论】:

    标签: python python-2.7 utf-8


    【解决方案1】:

    我会在列表理解中使用joinformat 构建字符串,迭代字符并使用ord 获取它们的代码:

    s = u"Some String"
    
    print(" ".join(["{:02X}".format(ord(c)) for c in s]))
    

    结果:

    53 6F 6D 65 20 53 74 72 69 6E 67
    

    注释

    • 适用于 Python 2 和 3
    • 如果您的字符的代码 > 255,您可能会得到大小大于 2 的标识符,但它仍然有效。

    【讨论】:

    • s = u"спасибо" 结果为441 43F 430 441 438 431 43E,我不知道这是否是 OP 所期望的。
    • 我也不是,但考虑到 1)它可以工作并且 2)这些值不适合 2 位整数,它仍然可以。 UTF-8 必须表示 OP 的 0-255 范围。
    猜你喜欢
    • 2012-03-31
    • 1970-01-01
    • 2013-04-12
    • 2014-08-07
    • 2019-12-02
    • 1970-01-01
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多