刚来了sohu.blog,那就来个原创吧.
由于最近不知道发什么神经了,非常喜欢mysql(那是免费的吖,谁不喜欢呢),而jsp就学了10多天,然后我听说jsp+mysql在进行相连操作的时候会经常出现乱码的情况.那我就把心一横,我也来试试吧.
谁知道一试,在jsp里使用mysql官方所提供的mysql驱动程序,果然在jsp里insert之后出现乱码的情况.然后在网上找了N多的资料试了一下,还是不行,又说听mysql官方的驱动对中文支持不太好,最好使用mm.mysql驱动,那又在网上找了驱动来下载,结果还是没有办法,乱码仍然存在.
就在我在csdn里乱逛,寻找解决方法的时候,不经意间看到一遍文章,是要先指定mysql的字符集,不仅是在my.ini文件里指定,而进入mysql时也要指定, mysql --default-character-set=gbk -uroot -p
这样的话,进入了mysql客户端管理程序,就可以指定一个字符集了,然后现在建一个数据库,再insert的话,问题依旧存在,没办法,再找方法.然而又找到了一个,说在连接字符串里要加个编码下去,然后又写了一下
String url="jdbc.mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=gbk"
要这里去写,然后在DriverManager.getConnection()里用.
然而,加了还不行,真是祸不单行,看了很多的文章了,说到的问题都已经写上了.包括在jsp里写
然后获取传递的参数的时候,也转换了编码了
String parame=new String(request.getParameter("param").getBytes("ISO8859_1","GBK");
结果还是不行,没办法,只好在mysql数据库里下手,终于在不经意间写了个建数据库和表的,竟然行了.脚本如下:
CREATE DATABASE MyDemo DEFAULT CHARSET=GBK;
USE Mydemo;
CREATE TABLE Temp(
ID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
NAME VARCHAR(50) NOT NULL,
PASSWORD VARCHAR(20) NOT NULL)
ENGINE=INNODB DEFAULT CHARSET=GBK;
这样,在mysql困扰了我两天的情况下,问题终于解决了.现在可以安心用mysql了.
希望对学习mysql+jsp的朋友有帮助..