WEBLOGIC6.0 sp2下SERVLET 的中文问题

文艺青年2 2002-05-13 03:51:41
我通过两种方式运行该SERVLET,
1、一种方式是从一个HTML页POST进入,执行DOPOST方法,中文参数显示正常
2、一种方式是在IE地址栏中直接输入http://127.0.0.1:7001/survey?survey=测试,然后回车,执行doGet方法,结果显示SURVEY NAME = ????
怎么办?以下是源代码
import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class survey extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res)
throws ServletException,IOException
{
res.setContentType("text/html;charset=gb2312");
String survey_val = req.getParameterValues("survey")[0];
survey_val = new String(survey_val.getBytes("ISO8859-1"),"GB2312");

PrintWriter toClient = res.getWriter();

// 向浏览器页面上写数据
toClient.println("<p style=color:red>GET 方法进入该页<p>");
toClient.println("<br>页面传入参数: SURVEY NAME = " + survey_val);

}
public void doPost(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException
{
PrintWriter out = res.getWriter();
out.println("<html>");

out.println("<head>");
out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=GB2312\" >");
out.println("</head>");

out.println("<body>");
out.println("POST 方法进入该页");

String username = req.getParameterValues("username")[0];
out.println("<br>中文参数:" + username);
out.println("</body>");
out.println("</html>");
}
}
...全文
31 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengji 2002-05-13
  • 打赏
  • 举报
回复
survey_val = new String(survey_val.getBytes("ISO8859-1"),"GB2312");
改为直接取:
survey_val = req.getParameterValues("survey");

qdstar 2002-05-13
  • 打赏
  • 举报
回复
只需加下面一行,内码不用转换
request.setCharacterEncoding("gb2312");
文艺青年2 2002-05-13
  • 打赏
  • 举报
回复
救救俺吧:)

1,220

社区成员

发帖
与我相关
我的任务
社区描述
企业软件 中间件技术
社区管理员
  • 中间件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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