当前位置:首页 » 编程语言 » javaurl中文

javaurl中文

发布时间: 2023-01-23 08:46:36

1. 解析URL中的汉字参数 java

import java.net.URLDecoder;
import java.net.URLEncoder;

String strTest = "?=abc?中%1&2<3,4>";
strTest = URLEncoder.encode(strTest, "UTF-8");
System.out.println(strTest);
strTest = URLDecoder.decode(strTest,"UTF-8");
System.out.println(strTest);

2. java中url后面加中文参数urlencoder.encode乱码怎么办

你这个问题真心不好办,建议你把页面编码改为GBK编码把。像楼上说的这些方法看似行得通,原理就是把utf-8转为gbk然后再转回utf-8,但那样是不能解决问题的,试图通过String newStr = new String(str.getBytes("gbk","utf-8"));办不到的,结果是中文字符为奇数会出现最后一个字乱码。我以前也曾碰到这个情况,最后还是把页面统一编码解决。
-

3. java url中有中文 传到后台有乱码 怎么改 乱码是

你这个问题真心不好办,建议你把页面编码改为GBK编码把。像楼上说的这些方法看似行得通,原理就是把utf-8转为gbk然后再转回utf-8,但那样是不能解决问题的,试图通过String newStr = new String(str.getBytes("gbk","utf-8"));办不到的,结果是中文字符为奇数会出现最后一个字乱码。我以前也曾碰到这个情况,最后还是把页面统一编码解决。

4. java中url后面加中文参数urlencoder.encode乱码怎么办

你这个问题真心不好办,建议你把页面编码改为GBK编码把。像楼上说的这些方法看似行得通,原理就是把utf-8转为gbk然后再转回utf-8,但那样是不能解决问题的,试图通过String
newStr
=
new
String(str.getBytes("gbk","utf-8"));办不到的,结果是中文字符为奇数会出现最后一个字乱码。我以前也曾碰到这个情况,最后还是把页面统一编码解决。
-

5. URL传递中文、Ajax传递中文,Java如何编码如何解决乱码

地址栏中出现汉字的情况有两种,一种是汉字出现在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路径部分的时候不需要编码解码;
2、使用encodeURI进行2次编码;
3、在openModelDialog()打开的模式窗体里没办法用request.getParameter正确获取参数;
客户端和服务器在传递数据时可以用过滤器filter解决字符编码问题,但filter只能解决post方式提交的数据。对于get方式,可以使用两次encodeURI(encodeURI(中文))并在服务器中使用URLDecoder.decode(中文, "UTF-8");
今天用Ajax校验数据时也遇到这个问题,尽管页面、类和web容器都统一了字符编码,提交的数据依然是乱码,所以就采用了2次encodeURI()编码方式,乱码问题就解决了。

6. java如何访问带中文路径的url

1,URLEncoder.encode(URLEncoder.encode(request.getRequestURI(),"GBK")); 再解码;
2,可以用二进制,先把中文全部转换,然后传值,在服务器中相应的转换为10进制;

7. java中通过url获取网页内容,中文显示是乱码

URLConnection context = url.openConnection();
InputStream in = context.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in, "gbk"));
包装流的时候要加入网站的编码 ,gbk和utf-8都试试

8. java url中文转码问题

你这是从Servlet中取参然后在界面显示是吧,JSP这个你设置的没:<%@page pageEncoding="utf-8" contentType="utf-8" %>
以及request,response的设置:
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");

9. java编程-SSH框架-URL传中文参数部分乱码。。。

换行下就可以了
比如你的url是
abc.action?name="张三"你到action里这样转化下
new
String
(name.getBytes("iso-8859-1"),"gb2312");就可以了

10. java中利用HttpUrlConnenction通过Get方法请求远端服务器,url中包含有中文

客户端通过URLEncoder.encode("","GBK")发送请求,然后服务端配置成用GBK对URL解码,应该是不用做别的事的。

(tomcat的编码设置可以网络"tomcatconnectorencoding",resin可以网络"resincharacter-encoding")。


如果不行可以按照下面的例子发送变量utf8的内容到服务器,然后对比一下运行结果,

比如服务器端get到的数据是下面哪几种解码情况,或者一种都不是(这就有可能是服务器程序不是utf8编码)。


下面是我的运行结果,如果不一样说明你客户端编码不是utf-8。


packagetest;


importjava.net.URLDecoder;

importjava.net.URLEncoder;


publicclassTest{

publicstaticvoidmain(String[]args)throwsException{

Stringutf8="我是内容:hello";

//模拟客户端编码

StringgbkURL=URLEncoder.encode(utf8,"GBK");


//模拟服务器为ISO8859-1解码(默认服务器都是这种解码)

StringisoDec=URLDecoder.decode(gbkURL,"ISO8859-1");

//乱码处理(得到正确内容)

Stringiso2gbk=newString(isoDec.getBytes("ISO8859-1"),"GBK");


//模拟服务器为UTF-8解码(应该是人为配置的)

StringutfDec=URLDecoder.decode(gbkURL,"UTF-8");

//乱码处理(得到的依旧是乱码)

Stringuft2gbk=newString(utfDec.getBytes("ISO8859-1"),"GBK");


//配置为GBK解码的服务器,无乱码

StringgbkDec=URLDecoder.decode(gbkURL,"GBK");


System.out.println(utf8);

System.out.println(gbkURL);


System.out.println("ISO解码:"+isoDec);

System.out.println("UTF解码:"+utfDec);

System.out.println("GBK解码:"+gbkDec);


System.out.println("正常iso转gbk:"+iso2gbk);//这是正常情况

System.out.println("错误iso转gbk:"+uft2gbk);//这个将服务器解码配置改成GBK即可

}

}

热点内容
查看linux被攻击 发布:2025-07-19 16:50:45 浏览:636
安卓模拟器10开配什么电脑 发布:2025-07-19 16:30:36 浏览:806
sql2008链接服务器 发布:2025-07-19 16:23:47 浏览:849
香港阿里腾讯云服务器报价 发布:2025-07-19 16:18:52 浏览:417
日语翻译存储安全 发布:2025-07-19 16:18:09 浏览:213
虚拟机访问主机ip 发布:2025-07-19 16:16:37 浏览:999
dz手机源码 发布:2025-07-19 16:14:50 浏览:704
如何利用服务器挂机器人 发布:2025-07-19 16:13:35 浏览:532
解压缩已 发布:2025-07-19 16:02:46 浏览:580
预处理编译链接 发布:2025-07-19 15:59:03 浏览:874