首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将unicode字符串转换为十六进制表示

将unicode字符串转换为十六进制表示
EN

Stack Overflow用户
提问于 2017-01-02 09:53:00
回答 2查看 23.3K关注 0票数 7

我想将unicode字符串转换为它的十六进制表示形式。例如,应该将u'\u041a\u0418\u0421\u0410'转换为"\xD0\x9A\xD0\x98\xD0\xA1\xD0\x90"。我尝试了下面的代码(python 2.7):

代码语言:javascript
复制
unicode_username.encode("utf-8").encode("hex")

但是,我得到一个字符串:

代码语言:javascript
复制
'd09ad098d0a1d090'

对如何获取\xD0\x9A\xD0\x98\xD0\xA1\xD0\x90有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-02 10:06:43

当您执行string.encode('utf-8')时,它将更改为十六进制表示法。

但如果您打印它,您将得到原始的unicode字符串。

如果你想要十六进制符号,你可以用repr()函数得到它:

代码语言:javascript
复制
>>> print u'\u041a\u0418\u0421\u0410'.encode('utf-8')
КИСА
>>> print repr(u'\u041a\u0418\u0421\u0410'.encode('utf-8'))
'\xd0\x9a\xd0\x98\xd0\xa1\xd0\x90'
票数 8
EN

Stack Overflow用户

发布于 2017-10-05 18:58:50

您还可以尝试:

代码语言:javascript
复制
print "hex_signature :  ",'\\X'.join(x.encode("hex") for x in signature)

join函数与分隔符' \X‘一起使用,因此对于每个字节到十六进制的转换,都会插入\X。连接函数是针对循环中变量签名的每个字节执行的。所有内容都被连接/连接并打印出来。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41420622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档