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

Python3如何将非ASCII字符替换为对应的Unicode表示值

实现思路

核心逻辑为遍历字符串内所有字符,ASCII范围内的字符直接保留,超出ASCII范围的特殊字符转换为\u加4位十六进制Unicode编码的格式即可。

常见编程语言实现示例

Python

可以借助内置json模块快速实现,也可以手动写转换逻辑适配自定义需求:

import json

raw_str = "Hello–World"
# 方法1:调用json序列化自动转义非ASCII字符
res = json.dumps(raw_str).strip('"')
print(res) # 输出结果:Hello\u2013World

# 方法2:手动实现转换逻辑
def unicode_escape_convert(s):
    output = []
    for char in s:
        code = ord(char)
        if code > 127:
            output.append(f"\\u{code:04x}")
        else:
            output.append(char)
    return "".join(output)

print(unicode_escape_convert(raw_str)) # 输出结果:Hello\u2013World

如果需要处理Unicode码点超过0xFFFF的字符(比如emoji、生僻汉字),可以根据需求调整逻辑,输出\U开头的8位编码或者UTF-16代理对格式即可。

JavaScript

const rawStr = "Hello–World";
function unicodeEscapeConvert(str) {
  return str.replace(/[^\x00-\x7F]/g, char => {
    const code = char.charCodeAt(0).toString(16)
    return `\\u${code.padStart(4, '0')}`
  })
}
console.log(unicodeEscapeConvert(rawStr)) // 输出结果:Hello\u2013World

Java

可以直接使用Apache Commons Lang库的工具类,也可以自己实现转换逻辑:

import org.apache.commons.lang3.StringEscapeUtils;

public class UnicodeConvertDemo {
    public static void main(String[] args) {
        String rawStr = "Hello–World";
        String res = StringEscapeUtils.escapeJava(rawStr);
        System.out.println(res); // 输出结果:Hello\u2013World
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:36:00