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

UnicodeEncodeError错误求助:utf-8无法编码代理字符问题

问题:处理含阿拉伯语与表情符号的字符串时出现Unicode编码错误

需要处理一段包含阿拉伯语和表情符号的字符串,原代码如下:

thumm= '\u0627\u0644\u0634\u0628 \u0639\u0627\u0645\u0644 \u0634\u0648\u0641\u064a\u0631 \u0627\u0635\u0646\u0635\u064a\u0631 \u0648\u0639\u0645 \u064a\u062d\u0627\u0633\u0628 \u0627\u0644\u0637\u0627\u0644\u0639 \u0648\u0627\u0644\u0646\u0627\u0632\u0644 \u0634\u0648\u0641\u0648 \u0634\u0648 \u0635\u0627\u0631 \u0627\u062e\u0631 \u0634\u064a \ud83d\ude02\u2764\ufe0f'

Text= bytes(thumm, "utf-8").decode("unicode_escape",errors='surrogatepass')
print(Text)

运行后抛出错误:

UnicodeEncodeError: 'utf-8' codec can't encode characters in position 67-68: surrogates not allowed

目标真实文本为:الشب عامل شوفير اصنصير وعم يحاسب الطالع والنازل شوفو شو صار اخر شي 😂❤️


解决方案

问题根源

你的代码里的thumm变量已经是正确的Unicode字符串,Python会自动解析\uXXXX转义序列和表情符号。但额外执行的bytes(thumm, "utf-8").decode("unicode_escape")操作,反而将原本正确的字符转成了无效的代理对(surrogate pairs),导致后续打印时编码失败。

正确代码

直接使用原字符串即可,无需额外转码:

thumm= '\u0627\u0644\u0634\u0628 \u0639\u0627\u0645\u0644 \u0634\u0648\u0641\u064a\u0631 \u0627\u0635\u0646\u0635\u064a\u0631 \u0648\u0639\u0645 \u064a\u062d\u0627\u0633\u0628 \u0627\u0644\u0637\u0627\u0644\u0639 \u0648\u0627\u0644\u0646\u0627\u0632\u0644 \u0634\u0648\u0641\u0648 \u0634\u0648 \u0635\u0627\u0631 \u0627\u062e\u0631 \u0634\u064a \ud83d\ude02\u2764\ufe0f'
print(thumm)

运行后会直接输出目标文本:الشب عامل شوفير اصنصير وعم يحاسب الطالع والنازل شوفو شو صار اخر شي 😂❤️

特殊情况:若字符串是外部获取的原始转义文本

如果thumm是从文件或接口获取的原始转义字符串(比如内容为\\u0627\\u0644...),可按以下方式处理:

# 示例原始转义字符串
thumm_raw = r'\u0627\u0644\u0634\u0628 \u0639\u0627\u0645\u0644 \u0634\u0648\u0641\u064a\u0631 \u0627\u0635\u0646\u0635\u064a\u0631 \u0648\u0639\u0645 \u064a\u062d\u0627\u0633\u0628 \u0627\u0644\u0637\u0627\u0644\u0639 \u0648\u0627\u0644\u0646\u0627\u0632\u0644 \u0634\u0648\u0641\u0648 \u0634\u0648 \u0635\u0627\u0631 \u0627\u062e\u0631 \u0634\u064a \ud83d\ude02\u2764\ufe0f'
# 解码转义序列
text = thumm_raw.encode('utf-8').decode('unicode_escape')
print(text)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 08:40:34