在IE地址栏里写上:test.jsp?name=大萝卜
请问这个"大萝卜"是经过什么字符集编码后发送到服务器的?
看IE里有一个“发送UTF-8 URL”选项,不过我测试了一下,好像不是以UTF-8发的啊?
如果IE是以系统默认字符集进行的编码,那请麻烦说明一下那个“发送 UTF-8 URL”是什么意思??
谢谢了!
请问这个"大萝卜"是经过什么字符集编码后发送到服务器的?
看IE里有一个“发送UTF-8 URL”选项,不过我测试了一下,好像不是以UTF-8发的啊?
如果IE是以系统默认字符集进行的编码,那请麻烦说明一下那个“发送 UTF-8 URL”是什么意思??
谢谢了!
发送出去的是:http://topic.csdn.net/u/20080327/21/a1a86bb9-e533-4b07-80fe-9bc24de368ca.html?name=%E5%A4%A7%E8%90%9D%E5%8D%9C
这里的%E5%A4%A7%E8%90%9D%E5%8D%9C是“大萝卜”utf-8编码的,gb2312编码的值是:%B4%F3%C2%DC%B2%B7。
由此可见ie确实是以utf-8发送的,如果你服务端处理时不是utf-8,那可能是服务端进行了转码。
发送出去的是:http://topic.csdn.net/u/20080327/21/a1a86bb9-e533-4b07-80fe-9bc24de368ca.html?name=%E5%A4%A7%E8%90%9D%E5%8D%9C
这里的%E5%A4%A7%E8%90%9D%E5%8D%9C是“大萝卜”utf-8编码的,gb2312编码的值是:%B4%F3%C2%DC%B2%B7。
由此可见ie确实是以utf-8发送的,如果你服务端处理时不是utf-8,那可能是服务端进行了转码。
http://topic.csdn.net/u/20080327/21/a1a86bb9-e533-4b07-80fe-9bc24de368ca.html?name=大萝卜
“大萝卜” 会变成编码形式的?我这里根本没有改哪!!!
1 采用POST, 这样参数就不再url里面了,所以不会有这个问题2 如果采用GET,你应该自己编码
String url = "test.jsp?name=大萝卜";
url = URLEncoder(url,"GBK"); // 这样自己主动编码,根据网站编码情况,可以用UTF-8编码
比如我传?test=我
那为什么new String(request.getParameter("test").getBytes("iso-8859-1"),"GBK");
第二个参数用GBK却仍然能得到正确 "我" ?
不是说经过UTF-8编码么?
-----------------------------------------------------------------------------------
默认是按照ISO-8859-1来编码的
但是如果不勾的话不清楚,请高人指点
提交页面时,如果是post请求那么根据charset编码。没有的话应该用iso-8859-1.
如果是get请求那么根据charset编码。没有的话应该用utf-8或者iso-8859-1. new String(request.getParameter("test").getBytes("iso-8859-1"),"GBK");
这一句是转码。java有对应表可以对不同编码进行转码。看这句话意义不大。
建议楼主看一下websphere 或者 weblogic的编码设定。都有比较详细地说明。
对转码器的选择也是应对特殊字符不得不看得。一般来说web服务器默认请求编码为iso-8850-1.
url = URLEncoder(url,"GBK"); // 这样自己主动编码,根据网站编码情况,可以用UTF-8编码
baidu 是 GBK