2017-04-19 45 views
2

比方说,我有一个UTF-8字符串:获取UTF-8字符序列十六进制从unicode字符串

u"Some String" 

现在我想的是把这个字符串以上,并将其转换成字符串UTF-8字符,但在十六进制表示的,所以它看起来是这样的:

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

如何在Python 2.7实现这一目标?

回答

3

我会在一个列表理解使用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的标识符,但它仍然有效。
+1

's = u“спасибо”'产生'441 43F 430 441 438 431 43E',我不知道OP是否期望它。 –

+0

我也没有,但它仍然可以考虑1)它的工作原理和2)这些值不适合2位整数。 UTF-8必须意味着OP的0-255范围。 –