手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>Java技术>列表

jsp连接mysql 并正常显示中文

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

最近趁着下岗没事干,学了一点JSP,鼓弄了半天终于连上了MySQL,不过发现从MYSQL中搜索出的中文显示不了.全他妈是???.上网搜了一下发现MY

SQL中不支持UNICODE只支持ISO-88591,于是天才的我想出了解决的办法:)把搜索出来的字符串转成字节数组,然后用这个字符数组创建一个GB2312的字符串.
<%=new String(rs.getString(2).getBytes("iso8859-1"),"gb2312")%>
反正很简单我也不过多解释.
下面附上所有代码. 可能有的人不知道怎么用JSP连接数据库.
其中people 是数据库的名称 root 是用户名 000000 是密码
另外需要一个mysql的JDBC驱动.我用的是:mysql-connector-Java-3.0.15-ga-bin.jar
网上到处可以找到,只需要把这个文件下载下来放在你这个jsp文件所在的目录中\Web-INF\lib下就可以了.
=========================testmysql.jsp=========================

<%@ page contentType="text/html; charset=GBK" %>
<%@ page language="java" import="java.sql.*"%>
<%
java.sql.Connection conn;
java.lang.String strConn;
Class.forName("org.gjt.mm.mysql.Driver");
conn= java.sql.DriverManager.getConnection("jdbc:mysql:///people","root","000000");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM t_1");
%>
<%
for(int i=0;rs.next();i ){
%>
<%=new String(rs.getString(2).getBytes("iso8859-1"),"gb2312")%>
<br>
<%}%>

===========================表的结构==============================

# --------------------------------------------------------

#
# 表的结构 `t_1`
#

CREATE TABLE `t_1` (
`id` int(4) NOT NULL default '0',
`name` char(20) NOT NULL default '',
`phone` int(20) default NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM;

#
# 导出表中的数据 `t_1`
#

INSERT INTO `t_1` VALUES (1, '我不是', 2147483647);
INSERT INTO `t_1` VALUES (2, '猪', 2147483647);

=====================================================================
OK,写完了....懂的人看起来肯定很简单,

上一篇: Java使用Oracle遇到的最大游标超出问题及其解决方法
下一篇: java中文解决大全(上)

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!