用new String(str.getBytes("utf-8"),"ISO-8859-1")之后数据库乱码咋整
这个是用了new string之后的

这个是没用new string的

建议将数据库编码 统一换为 utf8
人都麻了
英文字符还是中文字母
英文字符就别考虑编码问题了,往jdk版本和数据库版本上考虑考虑
出现乱码的情况,你要想彻底解决这个问题,需要搞定以下几个事情:
- 常用的字符编码有哪些,各自的编码方式是怎样的(着重 Unicode/UCS2、UTF-8、ISO-8859-1、GBK这几种编码)
- 了解数据库系统中的编码应用。数据库文件中的编码、数据库内存中表数据的编码、与客户端(JDBC)传输时使用的编码
- 根据数据库的配置文件,或者,数据库操纵语句 查询出上述几种情况的编码
- 一般情况下,JDBC使用的编码和服务端配置中,与客户端传输数据的编码,两者保持一致就可以解决乱码问题
- Java语言中,JVM内存中的字符/字符串采用的是Unicode/UCS2编码,双字节定长编码,一个字符占两个字节,不可压缩。
- 数据库的表数据,在内存中存储时,默认也会采用Unicde/UCS2编码,优点是便于字符处理,缺点是相对比较占内存空间。
- 数据库文件中的字符编码,一般默认会采用UTF-8编码,但不是绝对的。有时候Windows系统上,默认会采用GB2312等汉字编码。
- 数据库与客户端传输数据的编码,一般默认也会采用UTF-8编码,
但是,JDBC连接数据库时有时候会默认采用其他编码进行通信,从而出现乱码的状况。
在JDBC建立连接的URL字符串上面指定编码,可以解决搞定这个状况。 - 楼主这种诡异的字符串处理方式是不推荐使用的。
很多情况下,强制编码转换也会引起字符串中的信息丢失,从而出现部分乱码的状况。
如果明白了我上述说的这些有关编码的内容,开发过程中根本无需考虑编码的问题。
数据库有编码,数据库的表也有单独的编码,数据库表的每个字段都有单独的编码,检查下那个字段编码是否一致