当通过jdbc或者是DataSource数据源(最终也是通过jdbc),从数据库中取出数据,该数据的字符编码可能和网页使用的编码不一致,如果不进行相关的处理,会导致在网页上出现乱码,解决方法有两种:
- 在设定连接数据库的url时,指定字符编码,如String dbUrl = "jdbc:mysql://localhost:3306/BookDB?useUnicode=true&characterEncoding=GB2312"
- 如果在设定连接数据库的URL时,没有设定字符编码,则首先应该知道jdbc驱动程序使用的默认字符编码,然后对从数据库中取出的数据进行字符编码转换,如String col = new String(rs.getString(1).getBytes("ISO-8859-1"),"GB2312")