您好,欢迎访问一九零五行业门户网

java+mysql中文乱码问题_MySQL

bitscn.com
乱码问题原因有多种,其中有一种是由于mysql默认使用 iso-8859-1 ( 即latin1 ) 字符集,而java内部使用unicode编码,因此在java中向mysql数据库插入数据时,或者读取数据时,都需要先转换一下编码方式。当然,如果可以直接修改配置文件的话,也可以解决乱码问题,然而某些情况下,我们并不能直接接触到配置文件(例如你是买的网上的空间),此时,我们可以采取编码格式转换的方法。
详细方法参考以下博客。
http://ghostgate.blog.163.com/blog/static/20570131200811442747326/
插入数据:
如:
...
string str=中文;
string sql = insert into tb (xxx) values (?)
preparedstatement pstmt = conn.preparestatement(sql);
pstmt.setstring(1,str);
pstmt.executeupdate();
这样插入到mysql数据库后,用mysql.exe连接查看数据可以看到,插入数据变成了几个“?”呈,也即成了乱码。
解决方法是:
string str=中文;
str = new string(str.getbytes(),iso8859_1);         //加入此句,改变编码为iso-8859-1
string sql = insert into tb (xxx) values (?)
preparedstatement pstmt = conn.preparestatement(sql);
pstmt.setstring(1,str);
pstmt.executeupdate();
读取数据:
方法与插入数据类似,如下:
...
string str = rs.getstring(1);
str = new string(str.getbytes(iso8859_1));     //由iso8859-1编码还原为java内部默认字符集
//或者 str = new string(str.getbytes(iso8859_1,gbk);
bitscn.com
其它类似信息

推荐信息