站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题乱码问题

乱码问题

摘要: 乱码问题


String sql;
sql = -#34;insert into table1(field1) values(-#39;为什么乱码-#39;)-#34;;

数据库用mysql, 在sql语句里直接写中文,写进数据库后,再读出来乱码,如何解决?


可以把mysql的charset改为utf-8


老问题.....

写进去转换为latin1
gb = new String(iso.getBytes(-#34;GB2312-#34;),-#34;ISO-8859-1-#34;);

取出来转换为gb2312
gb = new String(iso.getBytes(-#34;ISO-8859-1-#34;),-#34;GB2312-#34;);



不改mysql,只改java代码,可以实现不?


或者是全部编码都用utf8,也不用转换来转换取了....


楼上的方法虽然也可以,但是这样不好,因为这样在数据库里看到的还是乱码,不利于调试
mysql的default charset是latin1,改为utf-8是比较理想的办法


楼上的说法有问题...

mysql在客户端看到是乱码,那要看你是用什么东西看(mysql命令行客户端默认的是latin1的编码,如果是用mysql Query来看是utf8的编码),你用默认的是utf8的工具来看latin1的编码当然是乱码了....


楼上地说的有道理,但是也有问题
1.用uft-8的工具来看latin1的编码不一定是乱码,编码方式只是一种对byte的解释方法,如果String本身是用utf-8编的码然后再用latin1重新encode为latin1,那么用uft-8的工具来看,它仍然是好的
2.你用latin1来保存中文时用utf-8和latin1的查看工具都不能看到正常文字,只有用unicode的察看工具才能正常看到中文


mysql 数据库里可能是乱码 把mysql中的字符集改成gb2312 或utf-8 就ok


↑返回目录
前一篇: 怎么隐藏java程序的界面?
后一篇: 哪位兄弟有fileupload组件 commons-fileupload-1.1-dev.jar,commons-io-1.1-dev.jar, 麻烦发一份给我:t97102003@163.com.谢谢!