当前位置:编程学习 > JAVA >>

请教一个url传值乱码问题

问题是这样的,我现在如果直接在浏览器中输入http://mysit.com/query.action?q=你好吗
这样最后一个字母就会变成问号,如果是偶数个就没有问题,请问有没有什么好的解决办法
我这个是在浏览器中直接输入地址,不是在页面中跳转,求达人指点 --------------------编程问答-------------------- 你编码后再传值 
记住编码一次不行 就编码两次
百度下 你就会学会 --------------------编程问答-------------------- 将URL编码
自己GOOGLE,丰衣足食 --------------------编程问答-------------------- http://chenqian.iteye.com/blog/261580 --------------------编程问答-------------------- 建议最好不要再URL上传递参数,特别是中文,改为form提交会安全很多 --------------------编程问答-------------------- 更改工作区的编码....还可以把tomcat中的编码改掉...试试 --------------------编程问答-------------------- 一两个参数还好,参数多了那就拼接的...你懂的 --------------------编程问答-------------------- 前台:http://mysit.com/query.action?q=encodeURI("你好吗")

在query.action中:URLDecoder.decode(request.getParameter("q").getString(),"UTF-8")); --------------------编程问答--------------------
引用 1 楼 anybyb 的回复:
你编码后再传值 
记住编码一次不行 就编码两次
百度下 你就会学会


没有看清问题,我是直接url输入网址,比如http://www.baidu.com/s?wd=吃了吗 --------------------编程问答--------------------
引用 2 楼 hymer2011 的回复:
将URL编码
自己GOOGLE,丰衣足食

看清问的什么,是浏览器直接输入的,不是页面跳转的 --------------------编程问答-------------------- 是楼主没搞清楚啊,汉字直接输入,在通讯时不认的,必须用unicode编码之后才能传递,否则你得到的就是一串乱码。不要以为直接在浏览器上输入中文都支持,那是因为有插件在IE里才支持的。但是原理都一样,首先转化成unicode之后,才能提交给服务器处理,服务器处理完毕返回结果,然后再将unicode编码转化为中文进行显示。 --------------------编程问答-------------------- 使用这个处理一下看看
newStr =new String(oldStr.getBytes(request.getCharacterEncoding()), "UTF-8"); --------------------编程问答-------------------- 如果你硬要在浏览器传递 除非你自己把汉字编码处理下 16进制最好 --------------------编程问答-------------------- js先编码,然后到后台解码就行了

具体百度一下url编码解码

祝楼主好运 --------------------编程问答-------------------- 首先不要地址栏里传值,其次不要在URL里写中文(路径不要用中文),最后解决方法
url=<%=java.net.URLEncoder.encode("http://mysit.com/query.action?q=你好吗
","ISO-8859-1")%> --------------------编程问答-------------------- encodeURI();
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,