javascript中怎么对已经编码的字符串解码?

来源:百度知道 编辑:UC知道 时间:2024/06/13 22:51:05
java中有一个字符串 msg:<p><span style="color:#ff57ac;"><strong>会读书胆红素</strong></span></p>,然后我用URLEncoder.encode(msg, "utf-8")对其进行了编码,怎么才能在javscript中把他还原回来呢?

我用过一个decodeURIComponent方法,但是用这个方法解码后,原来msg中所有的空格都变成了+。
还有别的方法吗?
其实就是这个问题:
在java里:String str = URLEncoder.encode("游客说: desa", "utf-8");
System.out.println(str);
输出的是:%E6%B8%B8%E5%AE%A2%E8%AF%B4%EF%BC%9A+desa

而在javascript中:
var de = decodeURI("%E6%B8%B8%E5%AE%A2%E8%AF%B4%EF%BC%9A+desa");
alert(de);

弹出的是:游客说:+desa
并不能完全的转换回去,在有中文标点的时候就会有问题,怎么解决这个问题?
好像在有<,>,""的时候也有问题。
在服务器端用java编码,客户端js解码。。。

如果你是用escape编码的,就用unescape()
如果你是用URLEncoder.encode()编码的,就用decodeURI() 解码。

javascript
用 var str = encodeURIComponent("游客说: desa") 编码
用 decodeURIComponent(str) 解码

javascript是escape和unescape方法