Python笔记——Unicode与16进制字符串相互转换
来源:互联网 发布:自我评价设计专业知乎 编辑:程序博客网 时间:2024/06/13 01:50
Unicode转换方式:
Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。目前的Unicode字符分为17组编排,0x0000 至 0x10FFFF,每组称为平面(Plane),而每平面拥有65536个码位,共1114112个。然而目前只用了少数平面。UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。
1、Unicode字符串转换成16进制字符串:
注:在Python3.x中实现过程:
如:将’2014number中英文数字文转’这串字符串转换成16进制形式显示。
U_Str = u'2014number中英文数字文转'
''' *Function: Unicode2HexStr * Description: Unicode字符串转换为16进制字符串 *Input: Unicde_Str要转换的Unicode字符串 *Return: Hex_Str返回16进制字符串 *Others: '''def Unicode2HexStr(Unicde_Str): Hex_Str = "" for i in range(0, len(Unicde_Str)): Hex_Str += (hex(ord(Unicde_Str[i])).replace('0x','').zfill(4)) return Hex_Strprint(Unicode2HexStr(U_Str))
输出结果为:
0032003000310034006e0075006d0062006500724e2d82f1658765705b5765878f6c
函数说明:ord()
ord(...)
ord(c) -> integer
Return the integer ordinal of a one-character string.
大体意思就是返回一个Unicode字符的int类型的序号,如:
‘2’这个数字字符的序号为50;
‘n’这个英文字符的序号为110;
‘中’这个中文字符的序号为20013;
与ord()相对应的函数为chr()
chr(...)
chr(i) -> Unicode character
Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff.
意思就是将一个int类型序号转换成Unicode的字符
函数说明:hex()
hex(...)
hex(number) -> string
Return the hexadecimal representation of an integer.
>>> hex(3735928559)
'0xdeadbeef'
2、16进制字符串转换成Unicode字符串:
将上面的输出结果逆转回来:
函数如下:
str_uhex='0032003000310034006e0075006d0062006500724e2d82f1658765705b5765878f6c'
'''*Function: HexStr2Unicode* Description: 16进制字符串转换为Unicode字符串*Input: Hex_Str 16进制字符串*Return: Unicde_Str Unicode字符串*Others:'''def HexStr2Unicode(Hex_Str):Unicde_Str = ""for i in range(0,len(Hex_Str)//4):chr(int(Hex_Str[i*4:i*4+4], 16))Unicde_Str += chr(int(Hex_Str[i*4:i*4+4], 16))return Unicde_Strprint(HexStr2Unicode(str_uhex))
用到的函数:int()
class int(object)
| int(x=0) -> integer
| int(x, base=10) -> integer
这里采用int(x, base=16) -> integer,x为数字字符串格式
- Python笔记——Unicode与16进制字符串相互转换
- Unicode字符串与Unicode数据的相互转换
- 十六进制Unicode编码字符串与中文字符串的相互转换
- carryLess小笔记001_Java中16进制与字符串之间的相互转换
- ANSI UNICODE 字符串相互转换
- JAVA方法 字符串与unicode的相互转换
- C/C++中ASCII与Unicode字符串相互转换
- JAVA方法 字符串与unicode的相互转换
- JAVA方法 字符串与unicode的相互转换
- JAVA方法 字符串与unicode的相互转换
- JAVA方法 字符串与unicode的相互转换
- Unicode 与 String字符串之间的相互转换
- JAVA方法 字符串与unicode的相互转换
- Java 字符串与Unicode之间的相互转换
- 字节码与16进制字符串相互转换
- 16进制字符串与字节数组相互转换
- PHP 字符串与16进制相互转换
- Python整型数与字符串相互转换
- BZOJ1818: [Cqoi2010]内部白点 树状数组+离散化
- Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
- 设计模式【2】:策略模式
- ubuntu 环境变量配置之后导致系统重启一直闪屏
- 一些常用的算法记录
- Python笔记——Unicode与16进制字符串相互转换
- 【Java】冒泡排序
- suricata 3.1 源码分析18 (模块注册及初始化)
- Python 学习笔记
- tp中 <include file="Public:header"/>
- HashMap简介
- javascript 编程(1)【小于整数m的带0,1的数字个数】
- sweet-alert-dialog在在android studio应用问题说明
- RabbitMQ使用