『壹』 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编码如果是英文和数字,输出的当然相同了,要用符号或者汉字才能看到变化