我的项目整体都是 utf-8 的编码,用的spring框架,filter中设置的也是 utf-8. post 和 get 方式提交中文都没有问题.可是我突然发现一个奇怪的现象,具体如下:
1.
<a href='test?val=测试'>测试</a> ---- 到后台无乱码2.
function() {
document.location.href='tset?val=测试' ------ 到后台无乱码
}3.
<a href='tset?val=测试' target='_blank'>测试</a> ---- 到后台有乱码4.
function() {
window.open('tset?val=测试') ------ 到后台有乱码
}
问题:只要是弹出新窗口,就会乱码, 而其他的情况则不会.按道理说,以上4种都是get方式,前两者不会乱码,而后两者弹出新窗口却会乱码, 难道他们发送请求的方式不一样吗? 有没有比较熟悉 http 协议方面知识的人来个解惑????求大神!!!
1.
<a href='test?val=测试'>测试</a> ---- 到后台无乱码2.
function() {
document.location.href='tset?val=测试' ------ 到后台无乱码
}3.
<a href='tset?val=测试' target='_blank'>测试</a> ---- 到后台有乱码4.
function() {
window.open('tset?val=测试') ------ 到后台有乱码
}
问题:只要是弹出新窗口,就会乱码, 而其他的情况则不会.按道理说,以上4种都是get方式,前两者不会乱码,而后两者弹出新窗口却会乱码, 难道他们发送请求的方式不一样吗? 有没有比较熟悉 http 协议方面知识的人来个解惑????求大神!!!
路径传中文不转码当然会乱码,var val= encodeURI(encodeURI(xxxxx)); js,String val = URLDecoder.decode(xxxx, "UTF-8"); java
<Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8"
URL传中文,本来就是一个禁忌。
那上面两个我同样没写 encodeURI() ,也没有出现乱码啊