回 帖 发 新 帖 刷新版面

主题:怎样解决中文存入数据库问题?

我提交表单时均用下面的方法转换了
String info=new String(request.getParameter("infor").getBytes("ISO8859_1"),"GBK");
如果输入的为中文,存入数据库中的只是“???“
那位高手帮忙解决一下

回复列表 (共8个回复)

沙发

你编码的格式可能有问题,因为数据库你要将其设为GB2312,你弄个GBK估计是不行

板凳

<%!
String encode(String str)                                         
 {
  if(str==null)
   {
   str="";
   }
   else{
       try{                                                                                                                      
        str=new String(str.getBytes("iso-8859-1"),"gb2312");
          }
   catch(Exception e){}
   }
   return str;
}
  %>
好像就可以了

3 楼

改为GB2312还使不好使
是不是数据库的问题啊,我用的是sqlserve
请问楼上那位,这段代码应给放在哪里,怎么用呢

4 楼

String info=request.getParameter("infor");
info=new String(info.getBytes("8859_1"));
jsp页中改为gb2312.
先试试看。

5 楼


还是不好使
[fly]还是不好使[/fly]

6 楼

你把程序改成以下代码试试看:
String info=new String(request.getParameter("infor").getBytes("gb2312"),"IOS-8859-1");
因为大多数据库是以ISO--8859-的格式进行编码,而我们通常用的是中文,也就是gb2312格式,如果从数据库是提取中文的时候应该以相反的编码方式。

7 楼


[em1]问题解决了
是数据库的问题,多谢大家了

8 楼

这个不全是数据库的问题,可能是不同数据库有不同的编码方式,你以后如果用其它数据库的时候可能还会遇到这种情况,这很正常。

我来回复

您尚未登录,请登录后再回复。点此登录或注册