解决url中文接收到是%加数字,解码

问题起始:

我在js中通过get方法发送一个带有中文的url

http://xxxxxxxxxx:8080/core/proxy.html?&XNAME=延安市

结果我在另一边收到的url是http://xxxxxxxxxx:8080/core/proxy.html?&XNAME=%D1%D3%B0%B2%CA%D0

我希望通过location.href 拿到这个url后解析这个参数,拿到这个延安市的中文。

解决过程:

之前我不知道这个是什么格式的字符。。之后查资料发现百度可以解析,将这个字符赋值到url

https://www.baidu.com/s?wd=%D1%D3%B0%B2%CA%D0

 

之后才发现原来%是用来分割中文的,而每一个字是里面的十六进制

而且这个是gb2312的,不同的编码格式,转成十六进制,比如

中国会被编码成
%D6%D0%B9%FA GBK GB2312 GB18030
%E4%B8%AD%E5%9B%BD UTF-8
%92%86%8D%91 Big-5等
%C3%E6%B9%F1 euc-jp等

如果是UTF-8可以直接在js中使用,decodeURI来解码。

decodeURI("%E6%98%A5%E8%8A%82")

而这里是gb2312的,查了很多资料,没有可以在js解决的

 

那我只能在java后端进行处理了、

我先测试了一下延安市encode后是否是这个。

发现是一样的,那么我们解码。

然后再传到之前的前台页面。

我们将十六进制通过url传到后台,需要注意

进行2次编码,否则会乱码的。

后台的话,如上图2次解码就好。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值