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

Python3中如何替换字符串中的非ASCII字符并返回字符串类型

问题原因

Python3里str.encode()方法返回的是bytes字节类型,不是字符串类型,你现在的写法只完成了编码时过滤非ASCII字符的步骤,没有转回字符串,自然拿不到想要的结果。

实现方法

直接删除所有非ASCII字符

编码过滤后再解码回ASCII字符串,就能得到字符串类型的结果:

body = "ALYSS - PYRAMID ♅"
newbody = body.encode('ascii', 'ignore').decode('ascii')

运行后newbody的值为"ALYSS - PYRAMID ",是标准的str类型。

把非ASCII字符替换成指定占位符

如果不想直接删掉非ASCII字符,想统一替换成?之类的固定字符,可以直接逐字符判断ASCII范围处理:

body = "ALYSS - PYRAMID ♅"
# 把'?'换成你需要的占位符即可
newbody = ''.join(c if ord(c) < 128 else '?' for c in body)

运行后newbody的值为"ALYSS - PYRAMID ?",类型为字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 21:48:18