关于ISO-8859-1编码和GB2312编码的问题,求高人指点
初学web,我想自己动手练习一下,就做了一个简单的东西,功能就是在一个text框里输入学号,点查询按钮,然后根据输入的学号从数据库里检索出学生信息来,列在网页(对应的文件是studentdetails.jsp)上。
最开始,studentdetails.jsp里面没有这句话:<%@ page contentType="text/html; charset=GB2312" %>
运行出来的现象就是:写在studentdetails.jsp里面的汉字都是???,不过从DB里检出来的汉字是能正常显示的。
比如,我想要的结果是 姓名:张三
实际结果是: ?????张三。
为了解决这个问题,我在studentdetails.jsp里加上了这么一句:<%@ page contentType="text/html; %>
运行结果就正常了。
我现在弄不明白两个事
第一,这个乱码问题,不是应该charset=GB2312这句话解决么,为什么我没写charset=GB2312,运行结果就变正常了?
第二,因为默认的编码方式是ISO-8859-1,那是不是说ISO-8859-1可以显示汉字啊?
最后,我加上了整句<%@ page contentType="text/html; charset=GB2312" %>,编码方式变成了GB2312了,可是运行出来的结果变成这样的了: 姓名:????
就是说,studentdetails.jsp里面的汉字能正常显示了,但是DB里检出来的汉字不能正常显示了。这个原因我想是因为mysql的数据库驱动程序的默认编码是ISO-8859-1,所以出现乱码了。
可是,没加charset=GB2312的时候显示的是正常的,不是说明ISO-8859-1能够正常显示汉字么?
求高人解惑!谢谢!