http://hi.baidu.com/rickmeteor/blog/item/5c7fab644

原文 http://hi.baidu.com/rickmeteor/blog/item/5c7fab64453a6af3f636546e.html

A:处理HTTPrequest数据编码

    默认IE采用 ISO-8859-1字符编码发送请求 WebAppProject要读取用户的发送的中文数据 需要重新编码 2种方法
1>在jsp代码中设定:
<%request.setCharacterEncoding("GB2312");%>

2>在服务器端设定:
String clientData=request.getParameter("clientData");
if(clientData!=null)
    clientData=new String(clientData.getBytes("ISO-8859-1"),"GB3212");

----------------------------------------------------------------------------------------------------------
B:处理数据库数据编码

    数据库在安装的时候 应该设定 字符编码集合 推荐使用 GBK或者 utf-8 编码
在数据库中如果采用 ISO-8859-1字符编码 那么需要对数据库中读出来的数据进行重新编码

比如说:
Connecttion con =DbUtil.connectToDb();
PreparedStatement ps=null;
ResultSet re=null;
String sql="select c.name from MYTABLE c";
PS=con.prepareStatement(sql);
while(re.next()){
    String name=rs.getString("name");
//    String name=rs.getString("0");
//---------------------这里对数据库进行了重新编码-------------------------------
    String name_cn=new String(name.getBytes("ISO-8859-1"),"GB2312");
//    String name_cn=new String(name.getBytes("ISO-8859-1"),"GBK");
//----------------------------------------------------------------------------
//process data
}


----------------------------------------------------------------------------------------------------------

C:处理XML配置文件编码
    在申明XML文件的时候:
    <?xml version="1.0" encoding="GB2312"?>


----------------------------------------------------------------------------------------------------------

D:c 处理响应结果的编码

1>在Servlet中
    response.setContentType("text/html;charset=GB2312");

2>在JSP中
    <% @ page contentType="text/html;charset=GB2312" %>

3>在HTML中
    <head>
        <META HTTP-equiv="Content-Type" CONTENT=""text/html;charset=GB2312"">
    </head>








1、我们要保证JSP向客户端输出时是采用中文编码方式输出的,即无论如何我们首先在我们的JSP源代编中加入以下一行:
    <% @ page contentType="text/html;charset=GB2312" %>
2、为了让JSP能正确获得传入的参数,我们在JSP源文件头加入下面一句:
<%request.setCharacterEncoding("GB2312");%>
3、为了让JSP编译器能正确地解码我们的含有中文字符的JSP文件,我们需要在JSP源文件中指定我们的JSP源文件的编码格式,具体来说,我们在JSP源文件头上加入下面的

一句即可:
<%@page pageEncoding="GB2312"%>或<%@page pageEncoding="GBK"%>
这是JSP规范2.0新增加的指令。 我们建议使用此方法来解JSP文件中的中文问题
//testchinese.jsp
<%@page pageEncoding="GBK"%>
<%@page contentType="text/html; charset=GBK"%>
<%request.setCharacterEncoding("GBK");%>

或者:
<%@ page language="java" pageEncoding="GBK" contentType="text/html;charset=GBK"%>
<%request.setCharacterEncoding("GBK");%>

******************************************************************************



数据库中出现乱码字符:

在你的jsp页面里的第一行是这么写的吗??
<%@ page language="java" pageEncoding="GBK" contentType="text/html;charset=GBK"%>

如果不是就试一下~~~

如果还不好使的话就在ActionForm类里的
public void reset(ActionMapping mapping, HttpServletRequest request)方法里加如如下代码:

try {
request.setCharacterEncoding("GBK");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}





附言:
GBK 向下与 GB 2312 编码兼容,向上支持 ISO 10646.1 国际标准,是前者向后者过渡过程中的一个承上启下的标准。
对于GBK与GB2312 还有 ISO-10646-1的规范请参考:

http://zhidao.baidu.com/question/17857907.html?si=1

Unicode编码和所有编码的规范:《程序员写给程序员的趣味读物》
http://zhidao.baidu.com/question/15626866.html?si=10







对一些关键字和细节的整理:

GB2312的原文还是区位码,从区位码到内码,需要在高字节和低字节上分别加上A0。


前面提到从ASCII、GB2312、GBK到GB18030的编码方法是向下兼容的。而Unicode只与ASCII兼容(更准确地说,是与ISO-8859-1兼容),与GB码不兼容。例如“汉”字的Unicode编码是6C49,而GB码是BABA。

Unicode也是一种字符编码方法,不过它是由国际组织设计,可以容纳全世界所有语言文字的编码方案。Unicode的学名是"Universal Multiple-Octet Coded Character Set",简称为UCS。UCS可以看作是"Unicode Character Set"的缩写。

你可能感兴趣的:(html,sql,jsp,IE,Blog)