2017-04-19 49 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範圍。 –

相關問題