今天访问一个参数用base64加密的url时,会出现某些中文乱码的情况,查了半天原来加密串中出现了加号,而加号会被当做空格处理(其它特殊字符还没碰到~)
处理的方法:
方法一:客户端修改,使用encodeURIComponent(str) 函数编码,“+”号将被编码全部替换为“2B%,后台会转换为“+”
方法二:服务端修改,后台拼接的url的话,使用URLEncoder.encode(str, "utf-8")进行编码,再加密(若有的话),rul跳转的地址中使用URLEncoder.decode(str, "utf-8")解码,再解密(若有);或者在url跳转的地址中将空格替换为“+”。
方法三:服务端修改,使用reuqest.getParameter改为request.getQueryString().substring(0)获取参数,然后解析。