// JSP 部分代码,NetBeans 5.5 Beta2 版本下开发<%@page pageEncoding="UTF-8"%>
<%request.setCharacterEncoding ("UTF-8");%><html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
  </head>
  <body>
  ......
<a href="<%=request.getContextPath()%>/index.jsp?GetInfoBySex=<%=ndNoteDetails.getSex ()%>"><%=ndNoteDetails.getSex ()%></a>// 生成的链接中汉字正常,点击后,地址显示 "http://localhost:8084/Note/index.jsp?GetInfoBySex=男" 也正常
但 JSP 代码中
String InfoBySex = request.getParameter ("GetInfoBySex");
而 InfoBySex 得到的结果却为 \uffd 而不是汉字“男”。代码中已经全部设定为 UTF-8 编码,为什么还得不到正确的结果,请高手指教。

解决方案 »

  1.   

    这个是用了get方法提交,提交时编码是根据你的web容器指定的。
    大概是这样,不知道有没有记错。比如tomcat默认是iso88591参数写到form中,用post方法提交或者拿到之后转换编码
      

  2.   

    上面的代码没有任何提交过程,而是使用链接方式附带参数
    目前的代码POST和GET提交方式都经过测试没有问题,唯独链接方式出问题
      

  3.   

    页面是什么编码?用记事本打开 另存为  UTF-8编码 看看
      

  4.   

    汉字是不可以在url中传下去的,在url中只会是乱码,可以把你的汉字放在form表单中传下去(在form表单中多加一个hidden的变量)。
      

  5.   

    页面设定的编码就是 UTF-8
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">又发现个问题:
    “计划一”该中文链接点击后获得的参数正确
    “计划二”该中文链接点击后参数只有前两个字正确,第三个字又出现\ufffd
      

  6.   

    问题自己解决了,方法如下,感谢大家的支持<%
      String temp = ndNoteDetails.getName ();
      temp = java.net.URLEncoder.encode (temp,"UTF-8");
    %>
    <a href="index.jsp?GetInfoByName=<%=temp%>">
      <%=ndNoteDetails.getName ()%>
    </a>
      

  7.   

    在你的web服务器里定义解码方式吧,这是最保险的了
      

  8.   

    String yhm=new String(request.getParameter("yhm").getBytes("iso-8859-1"));