java短信的url怎么处理java url传参中文乱码码怎么处理

&也不多说什么了,就拿urlconnection类举个例子吧,做一个获取网站源码的代码
public class urldemo {
&public static void main(string[] args) {
& scanner scan = new scanner(system.in);
&&&&&&& system.out.println("请输入网址:");
& string urlstr ="http://"+scan.next();
&& url url = new url(urlstr);&&&&&&& // 将urlstr字符串网址实例化为url定位地址s
&& urlconnection urlconn = url.openconnection();&& //打开网站链接s
&& bufferedreader reader = new bufferedreader(new inputstreamreader(
&&&& urlconn.getinputstream()));&&&&&&&&&&& //实例化输入流,并获取网页代码
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //依次循环,至到读的值为空
&& stringbuilder sb = new stringbuilder();
&& while ((s = reader.readline()) != null) {
&&& sb.append(s);&&&&
&& reader.close();
&& bufferedwriter bw = new bufferedwriter(new filewriter("d:1.html"));&&&& //write写入文件(字节流)
&& bw.write(sb.tostring());
&& bw.flush();
&& bw.close();
&& system.out.println("另存为成功!");
& catch (exception e) {
&& // todo auto-generated catch block
&& e.printstacktrace();
大家都知道url就是统一资源定位器
&& 它由协议名和资源名组成
下面一个汉字中文乱码处理方法
import&& java.io.
import&& java.io.
import&& java.net.m
import&& java.net.
import&& java.util.
import&& sun.net.www.protocol.http.
public&& class&& urldemo&& {
public&& static&& void&& main(string[]&& args)&& {
system.out.println( "starting... ");
httpurlconnection&& urlcon&& =&&
url&& url&& =&& new&& url( "http://www.111cn.net ");
urlcon&& =&& (httpurlconnection)url.openconnection();
}&& catch&& (ioexception&& e)&& {
system.out.println( "the&& date&& is&& : "&& +&& new&& date(urlcon.getdate()));
system.out.println( "content_type&& : "&& +&& urlcon.getcontenttype());
inputstream&& in&& =&& urlcon.getinputstream();
int&& all=&& in.available();
byte[]&& b=&& new&& byte[all];
//&& while&& (((c&& =&& in.read())&& !=&& -1))&& {
//&& system.out.print((char)&& c);
in.read(b);
string&& webpage&& =&& new&& string(b, "utf-8 ");
in.read(b);
string&& webpage&& =&& new&& string(b, "utf-8 ");
in.close();
system.out.println(webpage);
}&& catch&& (ioexception&& e)&& {
system.out.println( " "&& +&& e);
}&& catch&& (malformedurlexception&& e)&& {
system.out.println( " "&& +&& e);解决JSP_url参数中文乱码及用JS_javascirpt编码js实现encode后台JSP_解码decode的实现
来源:http://www.greensoftcode.net/&& 发布日期:&& && 点击次数:13171
发布者IP:124.95.137.155
解决JSP_url参数中文乱码及用JS_javascirpt编码js实现encode后台JSP_解码decode的实现一、正常JSP加密方法&%@ page contentType="text/charset=gb2312" %& &%@ page import="java.io.*" %&&%@ page import="java.util.*" %&&%@ page import="java.net.*" %&&&& &a href="test2.jsp?url=&%=java.net.URLEncoder.encode("编码的 是这里","GB2312")%&"&点击这里&/a&&&&
二、正常JSP解密方法
&%@ page contentType="text/charset=gb2312" %& &%@ page import="java.io.*" %&&%@ page import="java.util.*" %&&%@ page import="java.net.*" %& &&%&&& //request.setCharacterEncoding("GBK");&&& if(request.getParameter("url")!=null )&&& {&&& String str=request.getParameter("url");&&& str=java.net.URLDecoder.decode(str,"GB2312");&&& //str=new String(str.getBytes("ISO-8859-1"));&&& out.print(str);&&& }&&& %&&&&
三、那么这么样在前台用JS_encode加密在后台用JSPdecode解密呢第一次我这样加密window.open(url+"?keyword="+encodeURI(document.getElementById("keyword").value)); 在后台String keyword= java.net.URLDecoder.decode(request.getParameter("keyword"),"UTF-8");& 没成功第二次我用JS两次encodeURI就成功解密啦window.open(url+"?keyword="+encodeURI(encodeURI(document.getElementById("keyword").value)));
记住:要想用JS实现jsp的java.net.URLEncoder.encode必须这样做encodeURI(encodeURI(str));
是我要找的
不是我要找的
问题解决后请在中发布您的解决问题方法,谢谢共享!
版主QQ: | 联系电话:
Copyright@ 2009 - 2012 greensoftcode.net All Rights Reserved 辽ICP备号关于Java Servlet的中文乱码
具体如下:
1.JSP里CHARSET要为GB2312&
&contentType=&text/charset=GB2312&
2.SERVERLET类里要有&
&request.setCharacterEncoding(gb2312);
3.字符集的重新格式化
&java.net.URLEncoder& java.net.URLDecoder 对应的encode 与decode进行编码解码。
&在传输数据时候会自动对要表单传输的数据进行url编码,所使用的编码方式取决于当前网页显示时候使用的编码方式。
&对于http请求消息的url地址后的参数,getparameter等方法进行自动url解码时采用的编码方式取决servlet引擎;tomcat默认用ISO8859-1进行解码。
&重新格式化语句如下:
&String str1 = new String(request.getParameter(&name&).getBytes(&ISO-8859-1&),&gb2312&);
4.TOMCAT的CONF文件夹里的SERVER.XML中大约92行左右.(如果你没改过)
&找到connector区块,加入如下一行:
&URIEncoding=&GBK& 或 URIEncoding=&GB2312& 或 URIEncoding=&UTF-8&
&完整的应如下:
&&Connector&
& port=&80& maxThreads=&150& minSpareThreads=&25& maxSpareThreads=&75&&
& enableLookups=&false& redirectPort=&8443& acceptCount=&100&&
& debug=&0& connectionTimeout=&20000&&
& disableUploadTimeout=&true&&
& URIEncoding=&GB2312&&
5.Tomcat的conf文件夹下的web.xml文件的&servlet&&/servlet&标签之间添加如下代码
&&init-param&
&& &param-name&encoding&/param-name&
&& &param-value&GB2312&/param-value&
&&/init-param&
6.使用Servlet规范中的过虑器指定编码
&&1&.新创建一个servlet时,Interfaces接口:继承javax.servlet.Filter
&&&&&& options中只需选中:create Inherited M create C
&&&&&& 建好后在其doFilter()方法中:
&arg0.setCharacterEncoding(&gb2312&); //实现请求乱码的处理
&arg1.setCharacterEncoding(&gb2312&); //实现响应乱码的处理
&arg2.doFilter(arg0,arg1); //继续执行其他过滤器 或 jsp、servlet
&&2&.再在web.xml中把过滤器servlet中的相关内容的&servlet&&/servlet&改为&filter&&/filter&
&&&&&& 并修改&filter-mapping&&/filter-mapping&中的&url-patterm&/*&/url-patterm& ; &/*&表示执行任何文件
&简介过滤器:
&A.每个过滤器都会在 web.xml中有单独的配置:
& &filter-name&过滤器的别名&/filtr-name&
& &filter-class&过滤器的物理地址,带有完整的包路径的&/filter-class&
&&/filter&
&&filter-mapping&
& &filter-name&过滤器的别名&/filter-name&
& &filter-patterm&过滤器访问的路径&/filter-patterm&
&&/filter-mapping&
&B.当由于某种原因想要删除servlet类时,删除后在web.xml中还会保留删除的servlet类的记录,
&所以必须手动在web.xml中删除一下已删除的servlet类的信息
&过滤器的在web.xml中的典型配置和主要代码如下:
& &filter-name&CharacterEncodingFilter&/filter-name&
& &filter-class&net.vschool.web.CharacterEncodingFilter&/filter-class&
& &init-param&
&& &param-name&encoding&/param-name&
&& &param-value&GBK&/param-value&
& &/init-param&
&&/filter&
&&filter-mapping&
& &filter-name&CharacterEncodingFilter&/filter-name&
& &url-pattern&/*&/url-pattern&
&&/filter-mapping&
&CharacterEncodingFilter.java:
&import java.io.IOE
&import javax.servlet.F
&import javax.servlet.FilterC
&import javax.servlet.FilterC
&import javax.servlet.ServletE
&import javax.servlet.ServletR
&import javax.servlet.ServletR
&public class CharacterEncodingFilter implements Filter
& protected String encoding =
& public void init(FilterConfig filterConfig) throws ServletException
&& this.encoding = filterConfig.getInitParameter(&encoding&);
& public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
&& request.setCharacterEncoding(encoding);
&& response.setContentType(&text/charset=&+encoding);
&& chain.doFilter(request, response);
7.解决的乱码
&在jdbc.url中明确字符集 (不适用于sqlserver)
&在连接数据库时:con=DriverManager.getConnection(url,&sa&,&&);
&url=&jdbc:协议:子协议://IP:端口; 库 ? useUnicode=true & characterEncoding=gb2312&;
作者:xiahuawuyu
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'关于使用java.net.URL抓取网络上的资源发生乱码的解决办法
21:32:32 | 阅3435
来源:好空间网络
[打印] [关闭]
您的姓名:
验 证 码:
您的评论:
不能超过500个字符
所有留言只代表网友观点,不代表本站观点。
请各位遵纪守法并注意语言文明。
服务热线总机:400-666-3662
售前咨询:&&
技术支持:&&
jspkongjian
请扫右边二维码
经营许可证ICP:皖B2-
Copyright © , 安徽好空间网络科技有限公司 版权所有 , 本站素材部分来源于网络,如有侵权请告知删除。
&&&&&&&&&&}

我要回帖

更多关于 java urldecode 乱码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信