我想用 <a href="mvdelete.jsp?id= <%=rs.getString("变量名称")%>">删除 </a>方法在mvdelete.jsp中删除rs.getString("变量名称")对应的项,但是用id传送到 mvdelete.jsp文件当我用String variablename=request.getParameter("id");时,却出现“有的汉字字符串”可以准确的传过来,“有的汉字字符串” 不能准确的传过来,不能准确传过来的现象表现为“有的汉字字符串的最后一个汉字变成了问号,其它地方的汉字都正确”,看起来不像是乱码问题,因为数据库中是完全正确的,就是在mvdelete.jsp中才出现有的汉字字符串的最后一个汉字变成了问号其它地方的汉字都正确的现象,看起来又不像是 <a href="mvdelete.jsp?id= <%=rs.getString("变量名称")%>">删除 </a>的错误,因为当我把鼠标放在“删除”按钮时,浏览器的左底下脚出现了完全正确的mvdelete.jsp?id= <%=rs.getString("变量名称")%>形式,即id= <%=rs.getString("变量名称")%>浏览器的左底下脚显示的赋值是正确的汉字字符串。我用的数据编码格式是utf8。而且一般书上也都是像我这么写的,就是传输的不是汉字字符串。
注:我用过直接写字符串方式 <a href="mvdelete.jsp?id=或者">删除 </a>尝试,在mvdelete.jsp中得到的也是同样的结果:”或?“
这个是什么问题呢?如何解决?一个语句对于有的汉字字符串正确却对有的不正确,也不知道为什么?十分感谢大家的帮助!


解答:
用URLEncoder.encode()对汉字进行编码就行了

<a href="mvdelete.jsp?id=<%=URLEncoder.encode(rs.getString("变量名称"),"UTF-8")%>">删除 </a>

这样就好了。如果你用的是GBK,那就自己修改一下吧!

至于为何有的正确,有的不正确,偶数的是正确的,奇数的是错误的,可见你的编码是UTF-8的。

快乐渡过每一天,减肥坚持每一天