Code Bye

jsp提交数据到My SQL乱码

 

把jsp里面的数据提交到My SQL,中文提交上去就是乱码:

		try{
			conn = DriverManager.getConnection(connStr,"root","123456");
			psql = conn.prepareStatement("insert into news values(?,?,?,?,?,?,?)");
			psql.setString(1, news_id);
			psql.setString(2, news_title);
			psql.setString(3, news_content);
			psql.setString(4, news_author);
			psql.setString(5, news_time);
			psql.setString(6, news_keyword);
			psql.setString(7, news_type);
			psql.executeUpdate(); 
		}
		catch(Exception e){
			myErr =e.getMessage();
			System.out.println("Error: " + myErr);
		}

Debug发现news_id等值都是正常的中文,提交到My SQL以后就成了乱码,这是什么原因呢?
jsp的charset,pageEncoding都已经设置成了UTF-8。


4分
MYSQL数据库的字符集也设置成UTF-8

4分
1、终止MySQL服务
2、在MySQL的安装目录下找到my.ini,如果没有就把my-medium.ini复制为一个my.ini即可
3、打开my.ini以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭
4、启动MySQL服务

2分
亲,怎么又是你。。。。。

首先,判断你后台拿到jsp数据的时候是不是乱码

如果是,那就是你后台获取参数的时候需要设置编码

如果不是,那就是你数据库连接方面需要设置编码……


2分
1.jsp提交方式用post;
2.jsp页面设置utf-8;
3.数据库设置为utf-8;
引用 3 楼 shijing266 的回复:

亲,怎么又是你。。。。。

首先,判断你后台拿到jsp数据的时候是不是乱码

如果是,那就是你后台获取参数的时候需要设置编码

如果不是,那就是你数据库连接方面需要设置编码……

后台拿到的不是乱码,我用的是ODBC,连接字符串是

String connStr="jdbc:odbc:mynews";

这样怎么设置编码呢?


2分
mysql和jsp编辑格式保持一致。
引用 6 楼 EE___ 的回复:

mysql和jsp编辑格式保持一致。

保持一致了,还是不行,我用的是ODBC,会不会有影响?


2分
一步一步调试
1 数据从前台传递后台是否乱码?
2 数据库的编码是否一致
3 传递到controller里面是否有设置编码类型

2分
tomcat的端口编码设成utf-8试下

2分
看看你页面最上面创建的是什么编码格式如果不是UTF-8可以加上
或者后台接收参数时进行编码格式转换
String value = new String (request.getParameter(“name”).getBytes(“ISO-8859-1″),”UTF-8”);
如果以上都解决不了的话   可能是数据库编码设置问题
MYSQL一般会出现这样的问题 可以用以下方法查看编码格式

其中,character_set_client为客户端编码方式;character_set_connection为建立连接使用的编码;character_set_database数据库的编码;
character_set_results结果集的编码;
character_set_server数据库服务器的编码;
只要保证以上四个采用的编码方式一样,就不会出现乱码问题。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明jsp提交数据到My SQL乱码