You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python将UTF-8多字节Unicode字符替换为等长空格?

解决UTF-8多字节Unicode字符导致标注偏移的Python方案

核心逻辑是遍历文本中的每个字符,计算其UTF-8编码的字节长度,再用对应数量的单字节空格替换多字节字符:

def replace_multibyte_chars(text):
    result = []
    for char in text:
        byte_length = len(char.encode('utf-8'))
        if byte_length > 1:
            result.append(' ' * byte_length)
        else:
            result.append(char)
    return ''.join(result)

# 测试使用
raw_text = """Print
* Share


NUMBER: 0958

POLICY

1. CRITERIA FOR INITIAL APPROVAL



    Aetna considers gemcitabine (Gemzar)
"""

fixed_text = replace_multibyte_chars(raw_text)
# 输出处理后的文本或写入文件
print(fixed_text)

说明

  • 遍历每个字符时,通过char.encode('utf-8')获取字符的UTF-8字节序列,len()得到字节数。
  • 单字节字符(如普通空格、字母、数字)直接保留;多字节字符(如示例中的非断行空格U+00A0,UTF-8占2字节)替换为对应数量的普通空格,保证总字节长度不变,消除标注偏移。

内容的提问来源于stack exchange,提问作者Arthur Lee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 03:45:40