使用python将用ASCII表示的16进制unicode编码的ASCII字符串转换为unicode字符串

本文介绍如何使用Python内置函数将ASCII表示的16进制Unicode编码字符串还原为Unicode字符串。通过int()和unichr()函数的结合,可以实现从ASCII字符串如'4F60'到汉字'你'的转换。此外,提供了一个名为ucps2str()的函数,用于批量转换此类字符串。文章还提供了多个关于Unicode和Python中Unicode处理的参考资料链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

汉字“你”的unicode编码为u'/u4F60',将该编码用ASCII字符表示为字符串“4F60”。按照这样的规则将一字符串编码后,如何还原为unicode字符串?

可以通过使用两个Python内置的函数来简单解决这个问题。
    int( [x [, radix] ]) —— 该函数将字符串x按照指定的进制radix转换为数字
    unichr(i) —— 该函数返回一个字符的unicode字符串,该字符的unicode编码是整数i
则有:

>>> print  unichr(int( ' 4F60 ' 16 ))

由此,利用下面的函数,字符串“4F6060F354034EC04E48FF1F621160F3572895474E0A901B901BFF01" 可解析为“你想吃什么?我想在镇上逛逛!”

def  ucps2str(ucpstr):
    
''' 'Convert unicode code point (in hex) ascii string to unicode string '''
    s 
=   ''
    
for  i  in  range(len(ucpstr) / 4 ):
        ucp 
=  ucpstr[i * 4 :i * 4 + 4 ]
        s 
=  s  +  unichr(int(ucp,  16 ))

    
return  s

if   __name__   ==   ' __main__ ' :
    ucps 
=   ' 4F6060F354034EC04E48FF1F621160F3572895474E0A901B901BFF01 '
    
print   " Original:  %s  "   %  ucps
    
print   " Converted:  %s  "   %  ucps2str(ucps)

关于unicode和Python中unicode的相关内容,可参考如下链接:
1) The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) Joel Spolsky关于unicode概念的文章,入门必读。

2) All About Python and Unicode Python中的unicdoe

3) How to Use UTF-8 with Python Python中使用UTF-8,以及Unicode文件的处理

4) 谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词 解释了很多概念

5) Unicode for Programmers 有部分关于Python和Unicode的内容

6) The Basics of UTF-8 详细介绍了UTF-8编码的方法,有相关代码

7) The Complete Guide to C++ Strings, Part I - Win32 Character Encodings 介绍了我永远都搞不懂的Windows下的字符编码
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值