日期:2014-05-19 浏览次数:20779 次
1.tomcat编码设置(在引用的server中的server.xml文件中):
<Connector connectionTimeout="20000" URIEncoding="UTF-8" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
2、JSP与页面参数之间的乱码
????? JSP获取页面参数时一般采用系统默认的编码方式,如果页面参数的编码类型和系统默认的编码类型不一致,很可能就会出现乱码。解决这类乱码问题的基本方法
是在页面获取参数之前,强制指定request获取参数的编码方式:request.setCharacterEncoding("GBK")或
request.setCharacterEncoding("gb2312")。
如果在JSP将变量输出到页面时出现了乱码,可以通过设置
response.setContentType("text/html;charset=GBK")或
response.setContentType("text/html;charset=gb2312")解决。
如果不想在每个文件里都写这样两句话,更简洁的办法是使用Servlet规范中的过虑器指定编码,过滤器的在web.xml中的典型配置
?
3、Java与文件/流之间的乱码
Java读写文件最常用的类是FileInputStream/FileOutputStream和FileReader
/FileWriter。其中FileInputStream和FileOutputStream是基于字节流的,常用于读写二进制文件。读写字符文件建
议使用基于字符的FileReader和FileWriter,省去了字节与字符之间的转换。但这两个类的构造函数默认使用系统的编码方式,如果文件内容
与系统编码方式不一致,可能会出现乱码。在这种情况下,建议使用FileReader和FileWriter的父
类:InputStreamReader/OutputStreamWriter,它们也是基于字符的,但在构造函数中可以指定编码类
型:InputStreamReader(InputStream in, Charset cs)
和OutputStreamWriter(OutputStream out, Charset cs)。
?
4.时间绑定:
protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception{ SimpleDateFormat format= new SimpleDateFormat("yyyy-MM-dd"); binder.registerCustomEditor(Date.class,"startTime",new CustomDateEditor(format,true)); binder.registerCustomEditor(Date.class,"endTime",new CustomDateEditor(format,true)); }?
?
?