jsp+mysql乱码问题,请教高手给看看,我在网上找了很多方法,都没搞定.

来源:百度知道 编辑:UC知道 时间:2024/05/22 03:04:00
最近在做一个小设计,但在JSP中取mysql中的数据时中文全是?号,但在mysql中显示是正确的,而且我从JSP页面中向MYSQL中增加数据时,结果是正确的.
我的MYSQL版本中5.0 驱动是mysql-connector-java-5.1.6-bin.jar.
MYSQL中的字符集是GBK,我改过了的.
下面是我的一个测试代码:
<%@ page language="java" pageEncoding="GBK"%>
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<META http-equiv=Content-Type content="text/html; charset=GBK">
</head>
<body>
<%
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://localhost:3306/student?user=root&password=ytmflcel&useUnicode=true&characterEncoding=utf-8";
//testDB为你的数据库名
Connection conn = DriverManager.getConnection(url);
Statement stmt = conn
.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String sql = "select

把 &useUnicode=true&characterEncoding=utf-8去掉试试吧.

还不行的话你看看你的mysql安装路径下my.ini文件。
打开它找到两个地方
CLIENT SECTION 下面 default-character-set=gb2312
和SERVER SECTION 下面 default-character-set=utf8
是否是这样的配置,当然第一处gbk也可。
不是的话改过来,保存下。就可以了。

才子_辉祝您愉快!

characterEncoding=utf-8 --> characterEncoding=gbk

建议用所有的编码都用utf-8

<td><%=rs.getString(1)%></td>
<td><%=rs.getString(2)%></td>
<td><%=rs.getString(3)%></td>
<td><%=rs.getString(4)%></td>

在这个地方转一下看看
比如
<td><%=new String(rs.getString(4).getBytes("iso8859-1"),"gb2312")%></td>
这只是个例子,

要转码哦,不是说你写的GBK他就认你,像三楼的这样转下,转成字节码再转到GBK或GB2312