Java取建MySQL表语句,乱码!
2013-12-31 14:08
302 查看
本来是件很简单的事情.java通过mysql的driver连接mysql数据库.然后通过show create table取得建表语句.
但实际操作起来就很崩溃,到处都有字符集,操作系统有charset,java有charset,driver有charset,mysql有charset,连接有charset,结果有charset,这么多charset .....
其实本来这些都还算好说,而且根据自己的理解和以往的经验,处理这些其实也没啥难度.自以为信心满满的时候却傻眼了....
取表中的中文数据,很正常,直接就取到了中文.一点弯路都没走,本以为万事大吉,但是执行show create table xxx的时候却发现.当表定义中包含中文字符的时候.竟然是乱码......TNND.
没关系,不就是转码么.... 不怕不怕..
写了一个三层的循环,用遍了各种的字符集,各种连接字符集,latin1,gbk,utf8,各种字符集互相转换iso-8859-1,gbk,utf8,全部都跑了一遍........ MD,竟然还是乱码,一个正常的都没有...
为啥mysql终端,mysql各自工具取到的都是正常的中文呢? 百思不得其解......
最后.... 换了一下API
String sql = "show create table `test`.`z_cn_comment`";
ResultSet rs = con.DBGet(sql);
if(rs.next())
{
String createSQL = rs.getString(2);
}
中的
String createSQL = rs.getString(2);
换成了
String createSQL = null;
BufferedReader br = new BufferedReader(new InputStreamReader(rs.getAsciiStream(2),"GBK"));
while( (createSQL = br.readLine()) != null )
System.out.println(createSQL);
这个世界立刻就和谐了.....
原因待查.估计是Java在数据接收到后做了预处理...
http://techbbs.zol.com.cn/1/8_1335.html
但实际操作起来就很崩溃,到处都有字符集,操作系统有charset,java有charset,driver有charset,mysql有charset,连接有charset,结果有charset,这么多charset .....
其实本来这些都还算好说,而且根据自己的理解和以往的经验,处理这些其实也没啥难度.自以为信心满满的时候却傻眼了....
取表中的中文数据,很正常,直接就取到了中文.一点弯路都没走,本以为万事大吉,但是执行show create table xxx的时候却发现.当表定义中包含中文字符的时候.竟然是乱码......TNND.
没关系,不就是转码么.... 不怕不怕..
写了一个三层的循环,用遍了各种的字符集,各种连接字符集,latin1,gbk,utf8,各种字符集互相转换iso-8859-1,gbk,utf8,全部都跑了一遍........ MD,竟然还是乱码,一个正常的都没有...
为啥mysql终端,mysql各自工具取到的都是正常的中文呢? 百思不得其解......
最后.... 换了一下API
String sql = "show create table `test`.`z_cn_comment`";
ResultSet rs = con.DBGet(sql);
if(rs.next())
{
String createSQL = rs.getString(2);
}
中的
String createSQL = rs.getString(2);
换成了
String createSQL = null;
BufferedReader br = new BufferedReader(new InputStreamReader(rs.getAsciiStream(2),"GBK"));
while( (createSQL = br.readLine()) != null )
System.out.println(createSQL);
这个世界立刻就和谐了.....
原因待查.估计是Java在数据接收到后做了预处理...
http://techbbs.zol.com.cn/1/8_1335.html
相关文章推荐
- java百问
- Java精确测量代码运行时间 代码执行时间 纳秒 nanoTime
- java.util.ResourceBundle使用详解
- Java完全手册笔记4
- java的md5算法中为什么要将每个字节都&0xff?
- java常用设计模式
- java泛型
- java线程问题笔记
- java笔记之IO流
- java异常处理笔记
- java中enum字段需要持久化时的处理
- 安装和使用JD-Eclipse插件
- SpringAOP模型图解笔记
- Axis2用法(1)JAVA2WSDL和WSDL2JAVA
- Java中用split函数进行分割字符串(转)
- Struts学习笔记
- Struts1.0数据处理过程笔记
- Spring与Struts配置文件笔记
- Spring与Struts集成笔记
- Java中关键字static,final的理解