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

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

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"的缩写。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值