第一种可能:
FORM中得来的数据是ISO8859-1,从网页中看来是正常的,是因为你的WEB SERVER可能已经将它转为GB2312了,即 
new String(thePara.getBytes("ISO8859-1"),"GB2312"),
在将其加入数据库前可以:
sql = new String(sql.getBytes("GB2312"),"ISO8859-1")
或者new String(sql.getBytes(),"ISO8859-1")
第二种可能:
你说mysql是正常的。因为:
mysql默认的ENCODING刚好是ISO8859-1,那么FORM中得来的数据是ISO8859-1,那么加入MSSQL时试一试将转为GB2312,
new String(sql.getBytes("ISO8859-1"))