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

如何将包含%u021、%u0219等特殊编码的字符串转为正常可读字符

解决方案

问题本质

你遇到的是%uXXXX格式的非标准Unicode转义序列,这类编码是早期JavaScript独有的百分号Unicode编码格式,通用的URL解码函数无法识别,所以普通教程的方法不生效。你示例中的%u021B对应罗马尼亚语的ț,%u0219对应罗马尼亚语的ș,只需先解码转义序列,再移除字符重音即可得到目标结果。

Python 实现代码

# 先安装依赖:pip install unidecode
from unidecode import unidecode

raw_str = 'Strada Constitu%u021Biei, Foc%u0219ani 620123, Romania'
# 第一步:解码%uXXXX转义为Unicode字符
unicode_str = raw_str.replace('%u', '\\u').encode('latin1').decode('unicode_escape')
# 第二步:移除重音转为纯ASCII字符
result = unidecode(unicode_str)

print(result)
# 输出:Strada Constitutiei, Focsani 620123, Romania

JavaScript 实现代码

const rawStr = 'Strada Constitu%u021Biei, Foc%u0219ani 620123, Romania';
// 第一步:正则匹配解码%uXXXX转义
const unicodeStr = rawStr.replace(/%u([0-9a-fA-F]{4})/g, (_, code) => String.fromCharCode(parseInt(code, 16)));
// 第二步:通过Unicode规范化移除重音
const result = unicodeStr.normalize('NFD').replace(/[\u0300-\u036f]/g, '');

console.log(result)
// 输出:Strada Constitutiei, Focsani 620123, Romania

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:27:08