给没有搞定tamcat+msyql 乱码问题的哥们儿一个方法
在mysql 创建test数据库字符集:UTF-8
- Create DATABASE test default charset utf8;
- CREATE TABLE `people` (
- `id` int(10) NOT NULL auto_increment,
- `name` varchar(100) default NULL,
- `msg` text,
- PRIMARY KEY (`id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Create DATABASE test default charset utf8;
CREATE TABLE `people` (
`id` int(10) NOT NULL auto_increment,
`name` varchar(100) default NULL,
`msg` text,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
把jsp文件都保存问UTF-8编码
jsp页面控制脚本
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" errorPage="" %>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" errorPage="" %>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
数据库连接脚本
- String driverName="org.gjt.mm.mysql.Driver";
- String dbName="test";
- String tableName="people";
- String dbuser="alang";
- String dbpass="lingting";
- String url="jdbc:mysql://localhost:3306/"+dbName+"?user="+dbuser+"&password="+dbpass+"&useUnicode=true&characterEncoding=UTF-8";
- Class.forName(driverName).newInstance();
- Connection conn=DriverManager.getConnection(url);
- Statement stmt = conn.createStatement();
- String sql="SELECT * FROM "+tableName;
- ResultSet rs = stmt.executeQuery(sql);
String driverName="org.gjt.mm.mysql.Driver";
String dbName="test";
String tableName="people";
String dbuser="alang";
String dbpass="lingting";
String url="jdbc:mysql://localhost:3306/"+dbName+"?user="+dbuser+"&password="+dbpass+"&useUnicode=true&characterEncoding=UTF-8";
Class.forName(driverName).newInstance();
Connection conn=DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
String sql="SELECT * FROM "+tableName;
ResultSet rs = stmt.executeQuery(sql);
显示脚本
- while(rs.next()) {
- String str_name=new String(rs.getString("name").getBytes("ISO-8859-1"),"UTF-8");
- }
- <%= str_anme%>
while(rs.next()) {
String str_name=new String(rs.getString("name").getBytes("ISO-8859-1"),"UTF-8");
}
<%= str_anme%>
插入数据是不需要下面的脚本
- request.setCharacterEncoding("");