约定好的“=”去哪里了?

你以为的"="真的还在吗?

  • 问题背景:

前端输入"="分隔符,以Json的格式存入数据库,然后升级应用将,数据库存入的配置信息重写配置文件,神奇的发现服务器上需要指定的分隔符变成了"\u003d"

  • 问题复现
java 复制代码
   System.out.print(new Gson().toJson(<http://www.baidu.com/id=1>));

结果出乎意料的是:www.baidu.com/id/u003d1

特殊字符(如等号=)被转换为Unicode转义序列(如\u003d),如上所示"="成了 "u003d"

  • 问题原因

因为Gson默认会对这些特殊字符进行HTML转义,以确保生成的JSON字符串符合JSON规范。如果你不希望这些字符被转义

  • 解决方案

    1. 禁用HTML转义
    java 复制代码
      Gson gson = new GsonBuilder().disableHtmlEscaping().create();

    2.手动替换

    java 复制代码
        json = json.replace("\\u003d", "=");
    1. 工具类转换
    java 复制代码
       String json = StringUtils.unescapeJava(json);
  • 总结
    程序员人生,不仅在于思考,更在于动手实践。 你仅仅去看这个Bug,估计一辈子都看不出原因。

相关推荐
جيون داد ناالام ميづ23 分钟前
Spring Boot 核心原理(五):配置管理怎么玩?从基础到多环境再到配置中心
java·spring boot·后端
_小九28 分钟前
【开源】耗时数月、我开发了一款功能全面【30W行代码】的AI图床
前端·后端·开源
疯狂的程序猴33 分钟前
完整指南:iPhone崩溃日志查看与分析方法及低内存崩溃处理
后端
秧歌star51943 分钟前
PageHelper 分页失效原因分析与正确实践
后端
疯狂的程序猴1 小时前
苹果iOS应用签名与上架App Store完整指南包括注意事项
后端
回家路上绕了弯1 小时前
生产环境服务器变慢?从应急到根因的全流程诊断处理指南
分布式·后端
小胖霞1 小时前
Node+Express+MySQL 后端生产环境部署,实现注册功能(三)
前端·后端
aiopencode1 小时前
抓包技术全面指南:原理、工具与应用场景
后端
该用户已不存在1 小时前
Gemini 3.0 发布,Antigravity 掀桌,程序员何去何从?
后端·ai编程·gemini
aiopencode1 小时前
软件苹果商城上架的流程与团队协作模式 一个项目从开发到发布的完整经历
后端