问题描述
在用presto函数 url_decode解析url时遇到报错:
URLDecoder: Incomplete trailing escape (%) pattern java.lang.IllegalArgumentException: URLDecoder: Incomplete trailing escape (%) pattern
问题分析
presto url_decode函数用于将 application/x-www-form-urlencoded MIME 字符串转换为 utf-8 编码的普通字符串,上述报错是由于被解析字符串中包含没有编码含义的%。将没有编码含义的%替换为%25即可。
解决方法
select url_decode(regexp_replace('kw=%E5%85%BC%E8%81%8C%E8%AE%BE%E8%AE%A','%(?![0-9a-fA-F]{2})', '%25'))