解决数据库存储和查询中的乱码问题

王朝java/jsp·作者佚名  2006-01-09
宽屏版  字体: |||超大  

一、解决数据库存储和查询中的乱码问题:

1、数据库编码:

将数据库的编码设置成utf-8

在配置文件my.ini文件中设置

default-character-set=utf8

曾经试着设置DB的编码为GB2312,但是发现在这种编码下,部分生僻汉字(如:傑陞喆璟鹍珺玘愔旻菓)无法用LOAD DATA INFILE导入DB,但是换成UTF-8就好了。

二、解决JSP文件中的中文传到浏览器上会变成乱码的问题:

1、把保存JSP文件字符集改成UTF-8

Eclipse-->Project-->Properties-->Info-->Default encoding for text file.

将保存jsp文件的字符集改成UTF-8

设置单个文件的字符集,也可以在目标文件的右键菜单中选择Properties-->Info-->Text file encoding

设置Eclipse的默认字符集:Window-->preference-->Workbench-->Editors-->Text file encoding

2、设置JSP文件的字符集为UTF-8

<%@page contentType="text/html;charset=utf-8" %>

这样可以看到JSP文件翻译成的servlet文件中的中文为乱码,但是不用担心,最终被送到浏览器的文字不是乱码。

3、设置网页的字符集为UTF-8

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

注:如果设置页面的字符集为gb2312,浏览器可能会忽略这个信息,而是根据实际情况,自动将字符集选择为utf-8,从而不出现乱码。但是最好是给浏览器一个正确的提示,因此此处最好是设置charset=utf-8。

三、解决通过form提交的数据中的乱码

1、通过form提交的数据通常是ISO-8859-1编码的(不知道浏览器上有没有相关设置),因此jsp在从request中获取信息之后要进行内码转换。

String tmp = request.getParameter("sql");

String sqlcmd;

if ( tmp != null ){

sqlcmd = new String(tmp.getBytes("ISO-8859-1"),"UTF-8");

}

else{

sqlcmd = "";

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有