tomcat3.1下jsp+javabean的中文乱码问题,快来拣分!(100分)

  • 主题发起人 主题发起人 viviear
  • 开始时间 开始时间
V

viviear

Unregistered / Unconfirmed
GUEST, unregistred user!
迷惘
环境:tomcat3.1,没有访问数据库,用jbuilder开发javabean。
在jsp中
若加charset=GB2312,
javabean中存储的中文可以显示,
但是jsp的form中用户填入的中文为乱码。
若不加charset设置,直接使用默认设置或iso8859-1
jsp的form中用户填入的中文正常,
但javabean中存储的中文显示为乱码。
难道不能两全?
 
我是把控制面板的
区域设置为美国,然后再重启机子,
就可以了。

查找一下“乱码”,多的很啊:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=276779
http://www.delphibbs.com/delphibbs/dispq.asp?lid=283674
http://www.delphibbs.com/delphibbs/dispq.asp?lid=250671
 
老兄,我很难过,但是这种方法好像不灵
或者要我写一个函数,每次去转换,也太麻烦了吧
不是说tomcat应该没有问题的吗?
顺便补充一下,我用的是win2000
 
我顺便把源码也贴上吧,共有两个jsp页面,一个为form的填写npQuery.jsp,当checkbox
被选择时,参数值为“测试”。
另一个是返回结果QueryResult.jsp:显示checkbox的参数值和bean中的sample值
用到的bean:newspaperquerytest.npQueryBean,极简单,
只不过存了一个属性sample,赋初值为“厨师”
“测试”和“厨师”总不能同时显现。总有一个是??
----------------------------------------------------
npQuery.jsp:
--------------------------------------------------------
<HTML>
<HEAD>
<%@ page language="java" contentType="text/html;charset=GB2312" %>
<jsp:useBean id="npQueryBeanId" scope="session" class="newspaperquerytest.npQueryBean" />

<TITLE>
条件
</TITLE>
</HEAD>
<BODY>
<BR>
<FORM action="QueryResult.jsp" method="post">
<BR>输入条件: <BR>
<BR><input type="checkbox" name="test" value="测试">
条件一
<select name="test1">
<option value="1" selected>a</option>
<option value="2">b</option>
</select>
<BR>
<BR><BR>
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE=" ">
<INPUT TYPE="RESET" VALUE="">
<BR>
</FORM>
</BODY>
</HTML>
-----------------------------------------------------
QueryResult.jsp:
-----------------------------------------------------
<HTML>
<HEAD>
<%@ page language="java" contentType="text/html;charset=GB2312" %>
<jsp:useBean id="npQueryBeanId" scope="session" class="newspaperquerytest.npQueryBean" />
<TITLE>
查询条件
</TITLE>
</HEAD>
<BODY>
<H1>
<%
String test=new String();
test=request.getParameter("test");
out.println("参数:"+test);
test=npQueryBeanId.getSample();
out.println(";值:"+test);
%>
</H1>
</BODY>
</HTML>
--------------------------------------------------------
newspaperquerytest.npQueryBean:
--------------------------------------------------------
package newspaperquerytest;
public class npQueryBean {
private String sample = "厨师";
/**Access sample property*/
public String getSample() {
return sample;
}
/**Access sample property*/
public void setSample(String newValue) {
if (newValue!=null) {
sample = newValue;
}
}
}
 
一种是charset=gb2312
另一种是调用下面的函数转换:
public String getStr(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";
}
 
看来该写代码的地方还是省不了,
我用了yysun的办法,解决了这个问题,
但我还想问到底,
为什么参数传过来是usa8859-1编码呢?
 
delphiaps:
sorry开始我没有看到你的回复
为什么参数传过来是usa8859-1编码呢?
 
多人接受答案了。
 
后退
顶部