tomcat mysql 乱码终极解决方案

在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;


把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" />



数据库连接脚本
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%>
  



插入数据是不需要下面的脚本
request.setCharacterEncoding("");

你可能感兴趣的:(java,sql,tomcat,mysql,脚本)