import unicodedata
def fullwidth_to_halfwidth(s):
# 使用 unicodedata.normalize 将字符串规范化为 NFC 格式
s_normalized = unicodedata.normalize('NFC', s)
# 遍历字符串中的每个字符,将全角字符转换为半角
result = ""
for char in s_normalized:
code_point = ord(char)
# 如果是全角空格,直接替换为半角空格
if code_point == 0x3000:
result += " "
# 如果是其他全角字符,按照 Unicode 规则转换为半角字符
elif 0xFF01 <= code_point <= 0xFF5E:
result += chr(code_point - 0xfee0)
else:
result += char
return result
# 示例
fullwidth_string = "Hello World!"
halfwidth_string = fullwidth_to_halfwidth(fullwidth_string)
print(halfwidth_string)
Python 全角转半角
最新推荐文章于 2024-04-01 11:45:49 发布