jsp中文输入输出的问题!帮忙看一下!

matianyi 2003-08-26 08:30:41
1。我用jsp做了一个从网页向SQLServer输入数据的程序,在网页上输入中文,到了数据库中就变成了乱码,输出来的也是乱码!
2。输入的英文中如果有 ' 就会出现SQL语句错误!
请问这两个问题如何解决?
谢谢!
...全文
57 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
isquare 2003-09-01
  • 打赏
  • 举报
回复
老大 你用的是不是jbuilder,如果是你在选者字体的时候是否选者的是西文,那你的把他改成宋体之类的,才能正确显示!
matianyi 2003-08-26
  • 打赏
  • 举报
回复
我也知道这个方法,我的程序中就是用的这个方法,但是就是乱码,郁闷啊!
aku0708 2003-08-26
  • 打赏
  • 举报
回复
你定义一个METHOD
加个方法:
<%!public getStr(String str) throws Exception
{
String temp=str;
byte[] temp_p=temp.getBytes("ISO-8859-1");
return new String(temp_p,"GBK");;
}
%>
然后在插入数据库之前将有中文的变量用这个方法将变量转换一下:
String text=null;
if(request.getParameter("text")!=null&&request.getParameter("text")!="")
{
text=getStr(request.getParameter("text"));
}

matianyi 2003-08-26
  • 打赏
  • 举报
回复
我这几种方法都试过了,还是不行啊!
matianyi 2003-08-26
  • 打赏
  • 举报
回复
我在数据库中直接insert 中文,输入正确
但是在网页上输出的事乱码!
若是在网页上输入,则数据库中的也是乱码!
这是怎么回去?
pzl686 2003-08-26
  • 打赏
  • 举报
回复
1. <%@ page contentType="text/html; charset=GB2312" %>
然后在第一个resquest.getParameterq()前加request.setCharacterEncoding("GB2312");

2.将 ' 替换成""
梦幻圣者 2003-08-26
  • 打赏
  • 举报
回复
在jsp中加request.setCharacterEncoding("gb2312");或request.setCharacterEncoding("GBK");
smartzhang 2003-08-26
  • 打赏
  • 举报
回复
把这两段加上,就ok了
<%@ page contentType="text/html; charset=gb2312" language="java" errorPage="" %>
<head>
<title>ss</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
如果是英文系统
要进行编码转换的
在bean里写函数,调用就可以了
//处理中文问题的自定义函数
public String getcn(String str)//取、
{
try
{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("GBK");
String temp=new String(temp_t,"ISO8859_1");
return temp;
}
catch(Exception e)
{ return "null";}
}
public String setcn(String str)//存
{
try
{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("ISO8859_1");
String temp=new String(temp_t);
return temp;
}
catch(Exception e)
{ return "null";}
}
AngusZhang 2003-08-26
  • 打赏
  • 举报
回复
你不要在什么地方都加,先测试一下,在向数据库插入之前用System.out.println()输出你要的数据,看看输出是否是乱码;如果是乱码,可以用上边提到的方法转换一下:
String temp=str;
byte[] temp_p=temp.getBytes("ISO-8859-1");
return new String(temp_p,"GBK");
然后在输出看是否是乱码。
如果不是乱码了,就将数据插入数据库;
如果在数据库中显示为乱码,那么你在看一下数据库的语言设置,应该是数据库的原因了。

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧