servlet中得到参数的中文问题

synclock 2003-09-13 09:58:18
req.getParameter,如果传入参数是中文,得到乱码,高位被裁掉了,怎么办?

我试过用new String(para.getBytes("iso-8859-1"), "gb2312")不行
...全文
37 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingssman 2003-09-13
  • 打赏
  • 举报
回复
在你得到变量的值之前(request.getParameter(...)),加一句
request.setCharacterEncoding("gb2312");
pleonheart 2003-09-13
  • 打赏
  • 举报
回复
昏,没看清楼主的发言
你jsp页面的contentType是这样定的吗?
<%@ page contentType="text/html;charset=GB2312"%>
如果是,那这样传到Servlet再用上面那句话转一定没问题的
pleonheart 2003-09-13
  • 打赏
  • 举报
回复
String str = new String((String)request.getParameter("para").getBytes("iso-8859-1"),"GB2312");
ejbcreate 2003-09-13
  • 打赏
  • 举报
回复
如果是放在连接上,则要把他转换:
<%
String lPara = "你好";
lPara = java.net.URLEncoder.encode(new String(lPara.getBytes("GBK"), "iso8859-1"));
%>

<a href="yourServlet?Para=<%=lPara%>">Test</a>

...

yourServlet:(在你的servlet里直接取都没问题的)
String lPara = request.getParameter("Para");

如果用表单的形式,则不用做转换。


ejbcreate 2003-09-13
  • 打赏
  • 举报
回复
请问你的参数是放在连接上还是通过表单形式传过来的?
aku0708 2003-09-13
  • 打赏
  • 举报
回复
public getStr(String str) throws Exception
{ try{
String temp1=str;
String temp=new String(temp1.getBytes("ISO8859_1"));
return temp;
}catch(Exception e)
{
}
return "";
}

81,092

社区成员

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

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