request
和
response
的编码
[
页面编码必须为
u8
]
requestsetCharacterEncoding("UTF-8");//传值编码
responsesetContentType("text/html;charset=UTF-8");//设置传输编码
方法二:
String
str1=传来的数据。
String
ss=new
String(str1getBytes("ISO-8859-1"),"utf-8");
//转码UTF81、项目---右击---属性----资源----文本文件编码----其他----选择与默认的空间不同的编码(UTF-8/GBK)
2、也可以更改全局的编码,方法类似。窗口---首选项---普通-----工作空间,然后设置。
3、窗口---首选项----content type ---JSP----设置jsp的编码对于Java,由于默认的编码方式是UNICODE,所以用中文也易出问题,常见的解决是:
String s2 = new String(s1getBytes(“ISO-8859-1”),”GBK”);
1、utf8解决JSP中文乱码问题
一般说来在每个页面的开始处,加入:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
requestsetCharacterEncoding("UTF-8");
%>
◆charset=UTF-8的作用是指定JSP向客户端输出的编码方式为“UTF-8”;
◆pageEncoding="UTF-8",为了让JSP引擎能正确地解码含有中文字符的JSP页面,这在LINUX中很有效;
◆requestsetCharacterEncoding("UTF-8");是对请求进行了中文编码。
有时,这样仍不能解决问题,还需要这样处理一下:
String msg = requestgetParameter("message");
String str=new String(msggetBytes("ISO-8859-1"),"UTF-8");
outprintln(st);页面也需要设置转码的:
页面:(jsp)
<%@ page language="java" import="javautil" pageEncoding="UTF-8"%>
responsesetContentType("text/html;charset=UTF-8");
处理文件:(java)
转码的三种方法:
A 接受参数时进行编码转换
String str = new String(requestgetParameter("something")getBytes("ISO-8859-1"),"utf-8"); 这样的话,每一个参数都必须这样进行转码。很麻烦。但确实可以拿到汉字。
B 在请求页面上开始处,执行请求的编码代码, requestsetCharacterEncoding("UTF-8"),把提交内容的字符集设为UTF-8。这样的话,接受此参数的页面就不必在转码了。直接使用
String str = requestgetParameter("something");即可得到汉字参数。但每页都需要执行这句话。
这个方法也就对post提交的有效果,对于get提交和上传文件时的enctype="multipart/form-data"是无效的。稍后下面单独对这个两个的乱码情况再进行说明。
C 为了避免每页都要写requestsetCharacterEncoding("UTF-8"),建议使用过滤器对所有jsp进行编码处理。
新手可以暂时不考虑过滤器的方法,过滤器一般都会涉及到配置开发,要修改webxml,还算是比较麻烦的,建议接触java一段时间后再考虑使用过滤器的方法。或者如果应用了struts框架,可以查看struts的转码过滤器配置。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)