主题:怎样解决中文存入数据库问题?
hulian
[专家分:0] 发布于 2006-04-17 09:26:00
我提交表单时均用下面的方法转换了
String info=new String(request.getParameter("infor").getBytes("ISO8859_1"),"GBK");
如果输入的为中文,存入数据库中的只是“???“
那位高手帮忙解决一下
回复列表 (共8个回复)
沙发
PK59 [专家分:0] 发布于 2006-04-17 09:29:00
你编码的格式可能有问题,因为数据库你要将其设为GB2312,你弄个GBK估计是不行
板凳
shuishui11 [专家分:0] 发布于 2006-04-17 09:31:00
<%!
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 楼
hulian [专家分:0] 发布于 2006-04-17 16:21:00
改为GB2312还使不好使
是不是数据库的问题啊,我用的是sqlserve
请问楼上那位,这段代码应给放在哪里,怎么用呢
4 楼
xxd20021232 [专家分:0] 发布于 2006-04-18 15:24:00
String info=request.getParameter("infor");
info=new String(info.getBytes("8859_1"));
jsp页中改为gb2312.
先试试看。
5 楼
hulian [专家分:0] 发布于 2006-04-19 18:44:00
还是不好使
[fly]还是不好使[/fly]
6 楼
chwf1984 [专家分:1010] 发布于 2006-04-22 12:27:00
你把程序改成以下代码试试看:
String info=new String(request.getParameter("infor").getBytes("gb2312"),"IOS-8859-1");
因为大多数据库是以ISO--8859-的格式进行编码,而我们通常用的是中文,也就是gb2312格式,如果从数据库是提取中文的时候应该以相反的编码方式。
7 楼
hulian [专家分:0] 发布于 2006-04-22 19:23:00
[em1]问题解决了
是数据库的问题,多谢大家了
8 楼
chwf1984 [专家分:1010] 发布于 2006-04-23 20:56:00
这个不全是数据库的问题,可能是不同数据库有不同的编码方式,你以后如果用其它数据库的时候可能还会遇到这种情况,这很正常。
我来回复