关于编码问题
1.GBK
汉字国标扩展码,基本上采用了原来GB2312-80所有的汉字及码位,并涵盖了原Unicode中所有的汉字20902。GBK同时也涵盖了Unicode所有CJK汉字,所以也可以和Unicode做一一对应。
2.ISO/IEC 8859-1
又称Latin-1或“西欧语言”,是国际标准化组织内ISO/IEC 8859的第一个8位字符集。
用JSP时,如果页面需要使用中文,要用GBK编码
<%@ page language="java" import="java.util.*" pageEncoding="GBK" %>
在某些情况,会出现因编码不同造成冲突乱码的情况。如插入中文到数据库(如MSSQL),可以如下解决
代码
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String title=request.getParameter("title");
String username=request.getParameter("username");
try{
title=new String(title.getBytes("ISO-8859-1")); //解决中文乱码问题
}catch(Exception e){}
DBLinkBean DBLink=new DBLinkBean();
try{
String sql="INSERT INTO shoppingCart VALUES('"+username+"','"+title+"')";
DBLink.executeQuery(sql);
DBLink.release();
} catch(Exception e){ }
}
throws ServletException, IOException {
String title=request.getParameter("title");
String username=request.getParameter("username");
try{
title=new String(title.getBytes("ISO-8859-1")); //解决中文乱码问题
}catch(Exception e){}
DBLinkBean DBLink=new DBLinkBean();
try{
String sql="INSERT INTO shoppingCart VALUES('"+username+"','"+title+"')";
DBLink.executeQuery(sql);
DBLink.release();
} catch(Exception e){ }
}