URL中出现¤符号是什么原因?Thymeleaf拼接链接参数异常问题咨询
问题原因
你遇到的¤符号是HTML实体解析导致的。HTML中¤是货币符号「¤」的标准实体编码,多数HTML解析器支持容错解析,即使后面没有加分号,只要匹配到¤前缀就会识别为该实体。
你拼接的链接参数末尾存在currencyAbbr参数,手动拼接时参数前的&和currencyAbbr的前6个字符刚好组成¤,就会被解析为¤,剩下的cyAbbr直接保留在链接中,就出现了你看到的异常内容。删除参数后不会触发¤的匹配规则,异常符号自然消失。
解决方案
- 优先使用Thymeleaf原生URL参数语法:Thymeleaf的
@{}链接表达式原生支持参数传递,不需要手动拼接参数和分隔符,会自动处理URL编码、符号转义,完全避免此类问题,正确写法如下:
<a th:href="@{/manager_admin/all_orders_manager( pageNo=${currentPage}, sortField='date', sortDir=${reverseSortDir}, date=${date}, time=${time}, term=${term}, seller=${seller}, orderType=${orderType}, platform=${platform}, dateTo=${dateTo}, timeTo=${timeTo}, isMoney=${isMoney}, payment=${payment}, currencyAbbr='USD' )}">
- 如果必须手动拼接链接,需要将所有参数分隔符
&转义为&,避免被识别为HTML实体前缀,但这种方式容易遗漏转义,不推荐使用。
内容的提问来源于stack exchange,提问作者LosmiNCL
相关产品推荐
相关产品推荐

