您的位置:首页 > 数据库 > MySQL

mysql中文乱码

2016-04-04 23:35 316 查看
今天,使用eclipse开发mysql的时候出现中文乱码。

先说一下我的情况,所有eclipse文件的编码都是utf-8,

数据库的新建时编码选utf8

新建表的代码

DROP TABLE IF EXISTS `lineinfo`;

CREATE TABLE `lineinfo` (

`l_id` int(11) NOT NULL auto_increment,

`l_name` varchar(255) default NULL,

`l_voltagelevel` varchar(255) default NULL,

`l_type` varchar(255) default NULL,

`l_factory` varchar(255) default NULL,

`l_date1` datetime default NULL,

`l_date2` datetime default NULL,

`l_date3` datetime default NULL,

PRIMARY KEY (`l_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我debug了,发现中文在前台和和后台交互的时候都是没有问题的,就连debug出的sql语句都是正确的,可就是不知道为啥,中文进了数据库就成了问号。。。。

找了半个多钟头网上的解决方案,都是前台,后台的乱码,可是我的就是写入数据库是的乱码,当时真是抓狂,很烦躁。

前后台编码都是utf-8,数据库编码也是utf-8,可是很奇怪,为啥就是乱码呢!

后天找到原因了,原来问题出在数据库连接池这里,这里楼主也是第一次关注,原来乱码问题也可能由于连接引起的

解决方案就是在url上申明你的连接字符编码;即

url="jdbc:mysql://127.0.0.1:3306/数据库名?useUnicode=true&characterEncoding=UTF-8“

然后就突然解决了,感觉瞬间解放了啊!

记录一下自己的情况,希望和我一样的人也能不用被这个小问题困扰

还有就是如果碰到后台接收到的是乱码,首先应该想到的是:

jsp:<%@ page language="java" import="java.util.*" pageEncoding="utf-8" contentType="text/html; charset=utf-8"%>

后台:

request.setCharacterEncoding("utf-8");

response.setContentType("text/html;charset=utf-8");

str2=new String(str1.getBytes("ISO-8859-1"),"utf-8");//str1为后台接收到的乱码字符串
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: