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

Python如何将含特殊字符的字符串转为\u00xx格式Unicode转义串

问题解决:将字符统一转义为四位Unicode \uXXXX 格式

问题背景

你希望将字符串中的非ASCII字符(例如ñ)转义为四位\uXXXX格式的Unicode表示,示例输入Piñeiro的预期输出为Pi\u00f1eiro,但使用raw_unicode_escape编解码器仅能得到短格式的Pi\xf1eiro。

实现方法

下面提供两种可直接使用的方案:

方案1:自定义转义函数(无额外依赖,输出无多余符号)

该方案遍历字符串所有字符,对ASCII范围外的字符统一格式化为四位十六进制Unicode转义,完全符合输出要求:

def unicode_4escape(input_str: str) -> str:
    result = []
    for char in input_str:
        code_point = ord(char)
        if code_point < 128:
            # ASCII范围内字符直接保留
            result.append(char)
        else:
            # 非ASCII字符格式化为\u+四位十六进制小写
            result.append(f"\\u{code_point:04x}")
    return ''.join(result)

# 测试用例
s = "Piñeiro"
print(unicode_4escape(s))
# 输出:Pi\u00f1eiro

方案2:借助json模块实现(代码更简洁)

JSON的字符串转义规则默认对所有非ASCII字符使用\uXXXX格式输出,仅需要额外去掉返回结果前后的双引号即可:

import json

s = "Piñeiro"
result = json.dumps(s)[1:-1]
print(result)
# 输出:Pi\u00f1eiro

补充说明

Python内置的unicode_escape、raw_unicode_escape编解码器对U+0000到U+00FF范围内的字符会优先使用\xXX短格式输出,没有内置编解码器直接生成统一的四位\uXXXX格式,因此需要通过上述自定义或者借助json转义规则的方式实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:54:03