Heim >Datenbank >MySQL-Tutorial >java+mysql中文乱码问题_MySQL

java+mysql中文乱码问题_MySQL

WBOY
WBOYOriginal
2016-06-01 13:18:58852Durchsuche

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
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn