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

如何解码含Unicode十进制编码的字符串?Apache工具尝试失败求助

解决方案

你的问题出在工具选型上——StringEscapeUtils.unescapeJava()是用来处理Java风格转义字符(比如\n、\uXXXX这类)的,而你要解码的—是HTML十进制实体编码,得用专门处理HTML实体的方法。

直接用Apache Commons Text库中的StringEscapeUtils.unescapeHtml4()(或unescapeHtml3())就能解决:

import org.apache.commons.text.StringEscapeUtils;

public class EntityDecodeExample {
    public static void main(String[] args) {
        String encodedStr = "4,0 — 10,0";
        String decodedStr = StringEscapeUtils.unescapeHtml4(encodedStr);
        System.out.println(decodedStr); // 输出结果:4,0 — 10,0
    }
}

注意:如果之前用的是旧版Apache Commons Lang库,StringEscapeUtils已经被迁移到Commons Text库中了,需要确保依赖正确引入。

—对应的是Unicode字符U+2014(长破折号),HTML实体解码方法会自动将这类十进制实体转换为对应的Unicode字符,而Java转义解码方法不支持这类格式,所以之前的尝试没效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 04:05:23