在 Python 中,将 Unicode 字符(如 'A')转换为对应的整数(即 Unicode 码位,如 65)可以使用内置函数 ord(),以下是详细说明和示例:

使用 ord() 函数
ord(c) 返回字符 c 的 Unicode 码位(整数)。
示例:
char = 'A' unicode_int = ord(char) print(unicode_int) # 输出: 65 char = '中' unicode_int = ord(char) print(unicode_int) # 输出: 20013
反向操作:int 转 Unicode
如果需要将整数(Unicode 码位)转换回字符,使用 chr() 函数。
示例:
unicode_int = 65 char = chr(unicode_int) print(char) # 输出: 'A' unicode_int = 20013 char = chr(unicode_int) print(char) # 输出: '中'
处理 Unicode 转义序列
如果字符串中包含 Unicode 转义序列(如 '\u4e2d'),可以通过 eval() 或直接解析转换为字符。
示例:
unicode_escape = '\u4e2d' # 等同于 '中'
char = eval(f'"{unicode_escape}"') # 或直接使用 unicode_escape
print(char) # 输出: '中'
注意事项
ord()只能处理单个字符,如果传入字符串,会抛出TypeError。ord('AB') # 报错: TypeError: ord() expected a character, but string of length 2 found- Unicode 码位范围是
0到0x10FFFF(即1114111),超出范围会抛出ValueError。ord('\U00110000') # 报错: ValueError: chr() arg not in range(0x110000)
实际应用场景
- 字符编码转换:如将字符转换为 ASCII 或 UTF-8 的十六进制表示。
char = 'A' hex_code = hex(ord(char)) # '0x41'
- 密码学或加密:基于字符的 Unicode 值进行简单运算。
| 操作 | 函数 | 示例 |
|---|---|---|
| Unicode 字符 → 整数 | ord() |
ord('A') → 65 |
| 整数 → Unicode 字符 | chr() |
chr(65) → 'A' |
通过 ord() 和 chr(),可以轻松实现 Unicode 字符与整数的双向转换。


