数据库表中可能出现中文的字段都设置成了nvarchar类型,网页上提交的表单中有下拉选择框,value值都是中文的,编码类型也都是utf-8,在点击提交表单之后,通过request 传值,在insert into 到
表中数据还是乱了码,最后用了一个办法,其实不能怪数据库了,原来需要在出现中文字段的地方转换一下:
public static String getChinese(String inputstr){
try{
return new String((inputstr != null ? inputstr:"").getBytes("ISO8859_1"), "UTF-8");
}catch (UnsupportedEncodingException e){
e.printStackTrace();
}
return null;
}
其实通俗点看就是这样:新的字符串 = new String(要转的字符串.getBytes("ISO8859_1"),"UTF-8");
这样就没事了,究根源,我想还是JSP页面自打建立标准时是ISO8859这种编制,可能即使改成 gb2312,utf-8,说不定什么时候又不管用了,不乱码最好,乱了就小转一下就好。