标签:tco ebean pat font 16px com att ret .class
JSP:
第一阶段,jsp编译成.java。它会根据pageEncoding的设定读取JSP。结果是由指定的编码方案翻译成统一的UTF-8的JAVA源码
第二阶段,JAVAC用UTF-8的encoding读取.java文件,编译成UTF-8 encoding的.class文件
第三阶段,输出的网页用contentType
处理中文字符乱码:
对客户端请求进行重新编码
request.setCharacterEncoding("UTF-8")
对服务器响应进行重新编码
response.setCharacterEncoding("UTF-8")
编写JavaBean对乱码字符进行转码
(例如:通过表单传递中文数据)
String name =new String(request.getParameter("name").getBytes("ISO8859-1"),"UTF-8");
import java.io.UnsupportedEncodingException;
public class CharactorEncoding{
public CharactorEncoding(){
}
public String toString(String str){
//转换字符
String text = "";
//判断要转码的字符是否有效
if(str != null && !"".equals(str)){
try{
//将字符串进行编码处理
text = new String(str.getBytes("ISO-8859-1"),"UTF-8");
}catch(UnsupportedEncodingException e){
e.printStackTrace();
}
}
//返回后的字符串
return text;
}
}
//页面对表单请求进行处理
<jsp:useBean id="name" class="Models">
<jsp:useBean id="encoding" class="CharactorEncoding">
<jsp:setProperty property="*" name="name">
<%= encoding.toString(name.getXXX()) %>
由于Web容器内部所使用的编码格式并不支持中文字符集,所以,处理浏览器请求中的中文数据就会出现乱码现象。
通过过滤器来处理字符编码:
public class CharactorFilter implements Filter { String encoding = null; public void destroy() { encoding = null; } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException { if (encoding != null){ req.setCharacterEncoding(encoding); resp.setContentType("text/html;charset="+encoding); } chain.doFilter(req, resp); } public void init(FilterConfig config) throws ServletException { encoding = config.getInitParameter("encoding"); } } <filter> <filter-name>Charactor</filter-name> <filter-class>com.lx.CharactorFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>Charactor</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
标签:tco ebean pat font 16px com att ret .class
原文地址:http://www.cnblogs.com/praytell/p/7562886.html