java把url编码
『壹』 java中url后面加中文参数urlencoder.encode乱码怎么办
你这个问题真心不好办,建议你把页面编码改为GBK编码把。像楼上说的这些方法看似行得通,原理就是把utf-8转为gbk然后再转回utf-8,但那样是不能解决问题的,试图通过String newStr = new String(str.getBytes("gbk","utf-8"));办不到的,结果是中文字符为奇数会出现最后一个字乱码。我以前也曾碰到这个情况,最后还是把页面统一编码解决。
-
『贰』 求助,解释下Java中怎样把网址URL编码转义
Java在net包中提供了相应工具类,直接调用即可
importjava.net.URLDecoder;
importjava.net.URLEncoder;
try{
StringurlEncode=URLEncoder.encode("网络一下,你就知道","UTF-8");
System.out.println(urlEncode);
StringurlDecode=URLDecoder.decode(urlEncode,"UTF-8");
System.out.println(urlDecode);
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
『叁』 java url 编码
POST过去的数据是不用URL编码的。
你先request.getParameter("xm")获取下,看是否正确,如果是问号的话就转换下
new String(request.getParameter("xm").getBytes("iso8859_1"),"gbk");
你这个是在Java里面获取的?request是JSP里面的一个对象,在Java里就需要传入一个HttpServletRequest实例了。
『肆』 怎么对url连接进行URL 编码
在js中可以使用抄escape(), encodeURL(), encodeURIComponent(),三种方袭法都有一些不会被编码的符号:
escape():@ * / +
encodeURL():! @ # $& * ( ) = : / ; ? + '
encodeURIComponent():! * ( ) '
在java端可以使用URLDecoder.decode(“中文”, "UTF-8");来进行解码
但是由于使用request.getParameter()来获取参数时已经对编码进行了一次解码,所以一般情况下只要在js中使用
encodeURIComponent("中文");
在java端直接使用request.getParameter()来获取即可返回中文。
如果你想在java端使用URLDecoder.decode(“中文”, "UTF-8");来解码也可以在js中进行二次编码,即:
encodeURIComponent(encodeURIComponent("中文"));
如果不进行二次编码的话,在java端通过decode方法取的会是乱码。
『伍』 JAVA中URL编码工具,会将+ = /等也进行编码吗
=不会编码,其他的会
『陆』 java uri 编码 和urlencode 编码的区别
String mytext = java.net.URLEncoder.encode("中国", "utf-8");
String mytext2 = java.net.URLDecoder.decode(mytext, "utf-8");
这两条语句在同一个页面中的话,得到的结果是:
mytext: %E4%B8%AD%E5%9B%BD
mytex2: 中国
String zhongguo=new String(request.getParameter("zhongguo").getBytes("iso8859_1"));
zhongguo=java.net.URLDecoder.decode(zhongguo,"utf-8");
『柒』 如何用Java实现URLEncode
无需用抄Java实现URLEncode,jdk有已经实现了。
用法如下:
String urlStr = java.net.URLEncoder.encode("hello,网络", "GBK");
输出urlStr:%C8%CE%BA%F0%B2%F0%B0%A1
String keyWord = java.net.URLDecoder.decode("%C8%CE%BA%F0%B2%F0%B0%A1
", "GBK");
输出keyWord:hello,网络
『捌』 地址栏中有汉字,java如何利用对url编码求解
地址栏中出现汉字的情况有两种,一种是汉字出现在URL的路径部分,一种是汉字出现在URL的传参的部分,第二种情况的时候必须采用编码后传参,接受时解码的方式完成传参。js中编码有escape(),encodeURI(),encodeURIComponent()三个常用的方法,escape()常常用在提交页面和处理页面的编码格式相同的情况下(比如它们都是GB2312),encodeURI()和encodeURIComponent()的用法基本相同,区别在于encodeURIComponent()也对"?"等特殊字符进行编码。
一开始遇到中文参数的时候,使用encodeURI()进行了一遍编码,传过去后,发现解码出现问题,于是想到可能是编码方法使用错误,于是使用escape()方法,这时发现解码时抛出isHexDigit异常。借助网络搜索isHexDigit异常,
发现原来,是escape()方法造成了异常,同时了解了浏览器传递地址的一些原理,在浏览器地址栏里,浏览器认为%是个转义字符,浏览器会把%与%之间的编码,两位两位取出后进行解码,然后再传递给处理页面,
然后由处理页面进行再次解码。由此我想到一直使用encodeURI方法是正确的,只是需要使用两次encodeURI方法,例如encodeURI(encodeURI("中文"));第一次是把中文编码成%xy的格式,
第二次是对%xy中的%进行编码,%编码成%25。整个传参过程大体应该是:提交页面使用encodeURI(encodeURI("中文"))编码,把最后的编码结果%25xy传递给处理页面的过程中,浏览器获取URL地址
(注意openModelDialog方法,浏览器获取不到参数编码)后解码成%xy,然后把%xy传递给处理页面,处理页面使用URLDecoder.decode(request.getParameter("参数名"),"UTF-8");完成解码。
总结:1、汉字出现在URL路径部分的时候不需要编码解码;
『玖』 javahttpclient怎么设置url编码
可以把你的这来段代码简源化一下<pre t="code" l="java"> ins = method.getResponseBodyAsStream();
byte[] b = new byte[1024];
int r_len = 0;
while ((r_len = ins.read(b)) > 0)
{
result.append(new String(b, 0, r_len, method.getResponseCharSet()));
}替换为:
<pre t="code" l="java">byte[] ba = method.getResponseBody();
String str= new String(ba,"UTF-8"); //得到指定编码格式的字符串这里的str就是你的返回值。这段代码我使用过,可以解决乱码问题
『拾』 java的url编码
URL编码如果是英文和数字,输出的当然相同了,要用符号或者汉字才能看到变化