杰瑞科技汇

python unicode转字符

chr() 函数

这是最直接、最常用的方法,Python 内置的 chr() 函数接收一个整数(即 Unicode 码点),并返回其对应的字符。

语法

chr(i)
  • i: 一个表示 Unicode 码点的整数(范围在 00x10FFFF 之间)。

示例

常见 ASCII 字符

ASCII 字符的码点范围是 0-127。

# 码点 65 对应大写字母 'A'
char_a = chr(65)
print(f"码点 65 对应的字符是: {char_a}")
# 码点 97 对应小写字母 'a'
char_b = chr(97)
print(f"码点 97 对应的字符是: {char_b}")
# 码点 48 对应数字 '0'
char_c = chr(48)
print(f"码点 48 对应的字符是: {char_c}")

中文汉字

中文汉字在 Unicode 中通常位于基本多文种平面(BMP)。

# '中' 的 Unicode 码点是 20013
char_chinese = chr(20013)
print(f"码点 20013 对应的字符是: {char_chinese}")
# '国' 的 Unicode 码点是 22269
char_chinese_2 = chr(22269)
print(f"码点 22269 对应的字符是: {char_chinese_2}")

表情符号

表情符号通常需要两个 chr() 返回的字符来组合(称为代理对,Surrogate Pair)。

# '😊' 的 Unicode 码点是 U+1F60A
# 在 Python 中,这表示为整数 0x1F60A
char_emoji = chr(0x1F60A)
print(f"码点 0x1F60A 对应的字符是: {char_emoji}")
# '🚀' 的 Unicode 码点是 U+1F680
char_rocket = chr(0x1F680)
print(f"码点 0x1F680 对应的字符是: {char_rocket}")

其他方法:使用格式化字符串

你也可以使用 Python 的字符串格式化功能来实现同样的效果,这在需要动态构建字符串时非常有用。

示例

# 使用 f-string (Python 3.6+)
code_point = 65
char_from_fstring = f"{code_point:c}"  # :c 是将整数作为字符转换的格式说明符
print(f"f-string 转换结果: {char_from_fstring}")
# 使用 format() 方法
code_point = 97
char_from_format = "{:c}".format(code_point)
print(f"format() 转换结果: {char_from_format}")
# 使用旧式 % 格式化
code_point = 48
char_from_percent = "%c" % code_point
print(f"百分号格式化转换结果: {char_from_percent}")

反向操作:字符转 Unicode 码点

如果你需要执行相反的操作,即从一个字符获取其 Unicode 码点,可以使用内置的 ord() 函数。

语法

ord(c)
  • c: 一个长度为 1 的字符串。

示例

char_a = 'A'
code_point_a = ord(char_a)
print(f"字符 '{char_a}' 的码点是: {code_point_a}") # 输出 65
char_emoji = '😊'
code_point_emoji = ord(char_emoji)
print(f"字符 '😊' 的码点是: {code_point_emoji}") # 输出 128522 (即 0x1F60A)

操作 函数/方法 描述 示例
Unicode 码点 → 字符 chr(i) 最常用,将整数码点 i 转换为字符。 chr(65)'A'
f"{i:c}" 使用 f-string 格式化。 f"{97:c}"'a'
字符 → Unicode 码点 ord(c) 将字符 c 转换为其整数码点。 ord('A')65

在绝大多数情况下,你只需要记住 chr()ord() 这两个核心函数就足够了。

分享:
扫描分享到社交APP
上一篇
下一篇