网页中的输入框中的字符的编码是iso-8859-1,而mssql的数据库中的默认编码是gb2312
因此在存入时需要转换,但是转换后,也就是当字符转换为gb2312时,在网页中显示时会是乱码,但是从数据库中读取时显示在网页中的不是乱码,而这时不需要再转换了,当做比较时(比如:验证用户登录),输入框中的字符的编码是iso-8859-1,需要转换成gb2312,而数据库中的不需要转换了,可以直接比较。
<mssql>
<driver>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver>
<url>jdbc:microsoft:sqlserver://localhost:1433;SendStringParametersAsUnicode=true</url>
<user>sa</user>
<pwd>xzy</pwd>
</mssql>
mysql数据库的默认编码是gb2312,但是网页中的输入框中的字符不能重新编码而直接存储,重新编码反而在数据库中是乱码,显示的不是乱码,但是当从数据库读取数据时应该由iso-8859-1转换为gb2312,如果你需要用网页中的输入框中的字符与数据库中的字符串比较你应该把他们由iso-8859-1转换为gb2312,无论他们是网页中的还是数据库中的。这样才能比较成功,再次输出到网页时显示的才不是乱码。我的数据库连接时采用的是
<mysql>
<driver>org.gjt.mm.mysql.Driver</driver>
<url>jdbc:mysql://localhost/classmate?</url>
<user>root</user>
<pwd>xzy</pwd>
</mysql>
我的网页的默认编码是gb2312
而没有采用编码方式,采用的是默认编码。