解决java乱码的方法

java的乱码问题一直很是烦人,现在有时间总结一下

1、表单使用post方式提交

这种情况比较好解决,只需在servlet中加入request.setCharacterEncoding("utf-8");即可,当然也可以是其他的编码方式。

但是必须注意一点:因为在执行第一行request.getParameter();时,servlet已经将所有的参数得到,将他们放到容器中,以后再次执行request.getParameter();去其他参数时,只不过从容器中拿而已。所以request.setCharacterEncoding("utf-8");必须放到第一个request.getParameter();前面,才能确保拿到的参数不会出现乱码,否则它不会起到任何作用。当然解决post方式提交乱码的最好方案,还是写一个过滤器。

2、表单使用get方式提交或使用URL链接

这是一种比较复杂的情况,首先浏览器会对URL中的中文参数进行编码,一般是utf-8。然后web容器会对URL中的参数进行解码,以tomcat为例,在“Connecto”标签中设置URIEncoding="utf-8",tomcat会对参数进行解码,这时在servlet中拿到的就是中文。

但往往事与愿违,如果不在tomcat中配置“URIEncoding”时(这种情况恐怕最多),它默认的是“iso-8859-1”,以这种方式解码,在servlet中肯定是乱码了。

所以解决get方式乱码有三种:

第一,在tomcat的“Connecto”标签中设置URLEncoding="utf-8"。

第二,在servlet中加入一行代码:String parameter= new String(parameter.getBytes("iso-8859-1"),"utf-8");。

第三,也是最彻底的一种,在提交之前,首先对参数进行两次编码。例如使用java的URLEncoder.encode();对参数进行两次编码,然后再将参数传入到页面;或者使用JavaScript的编码方式encodeURIComponent() 对参数两次编码。这样做,不管tomcat是何种解码,都无所谓,这是因为当对参数编了一次码后,已经是英文了,这时再对它进行一次编码和解码,无论是什么编码和解码方式,得到的都是第一次编过码的形式。那么在servlet中只需要用URLDecoder.decode(parameter,"utf-8");,即可得到中文参数。

相关文档:

一:准备 www.savarese.org download

1.  rocksaw-1.0.0-src.tar.gz

2.  vserv-tcpip-0.9.2-src.tar.gz

二:编译源文件得到jar包 使用Ant

1.  build vserv-tcpip-0.9.2-src

在vserv-tcpip-0.9.2目录下面建一个tests目录,然后在cmd窗口下进入 ......

一、JAVA获取随机数的方法

//使用java.lang.Math类的random()方法

double a = Math.random();

System.out.println("0.0-1.0的随机数:" + a);

double b = Math.random()*100;

System.out.println("0.0-100.0的随机数:" + b);

int c = (int)(Math.random()*100);

System.out.println("0-100的随机整数:" + c);&nbsp ......

java正则表达式通过java.util.regex包下的Pattern类与Matcher类实现(建议在阅读本文时,打开java API文档,当介绍到哪个方法时,查看java API中的方法说明,效果会更佳).

Pattern类用于创建一个正则表达式,也可以说创建一个匹配模式,它的构造方法是私有的,不可以直接创建,但可以通过Pattern.complie(String regex)简单工厂方� ......

private String smtpHost;

private String smtpUserName;

private String smtpPassword;

public void sendEmail(String fromAddress, List toAddresses, List ccAddresses,

String subject, String message) {

Properties props = new Properties();

props.put("mail.smtp.host", smt ......

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐