十六进制工具 - HexUtil¶
由来¶
十六进制编码在加密、网络通信等场景中广泛使用,HexUtil 提供便捷的十六进制编解码方法。
方法¶
from hutool import HexUtil
# 编码(默认小写,与 Java Hutool 一致)
HexUtil.encode_hex_str(b"hello") # "68656c6c6f"
HexUtil.encode_hex_str(b"hello", False) # "68656C6C6F"(大写)
# 字符串编码
HexUtil.encode_hex("Hello") # "48656c6c6f"
HexUtil.decode_hex_str("48656c6c6f") # "Hello"
# 解码
HexUtil.decode_hex("68656c6c6f") # b"hello"
# 数字转换
HexUtil.to_hex(255) # "ff"
HexUtil.hex_to_int("ff") # 255
# 颜色转换
HexUtil.encode_color_str((255, 128, 0)) # "#FF8000"
HexUtil.decode_color("#ff8000") # (255, 128, 0)
# 判断是否十六进制数
HexUtil.is_hex_number("0xff") # True
HexUtil.is_hex_number("xyz") # False
# 字符转 Unicode 十六进制
HexUtil.to_unicode_hex("中") # "\\u4e2d"
IEEE 754 位重解释¶
# float ↔ 十六进制
HexUtil.to_hex_float(1.0) # "3f800000"
HexUtil.hex_to_float("3f800000") # 1.0
# double ↔ 十六进制
HexUtil.to_hex_double(1.0) # "3ff0000000000000"
HexUtil.hex_to_double("3ff0000000000000") # 1.0
进制转换¶
# long ↔ 十六进制
HexUtil.to_hex_long(255) # "ff"
HexUtil.hex_to_long("ff") # 255
# 十六进制转大整数
HexUtil.to_big_integer("100000000") # 4294967296
颜色编码¶
# encodeColor — RGB 颜色编码为 #RRGGBB
HexUtil.encode_color(255, 128, 0) # "#FF8000"
HexUtil.encode_color(0, 0, 0) # "#000000"
格式化十六进制¶
# formatHex — 格式化十六进制字符串
HexUtil.format_hex("AABBCCDD", "-", 2) # "AA-BB-CC-DD"
HexUtil.format_hex("AABBCCDD", ":", 2) # "AA:BB:CC:DD"
HexUtil.format_hex("AABBCCDD", " ", 4) # "AABB CCDD"