jsp页面地址栏传中文乱码

k1014247445 2010-12-23 09:20:26
有两个页面,1.sjp和2.jsp
1.jsp页面有一个链接

<a href="content.jsp?id=<%= t.getId()%>&name=<%= t.getUsername()%>"> <%= t.getTitle()%> </a>

一共传两个值到2。jsp:id和name。

这里name的值=<%= t.getUsername()%>得到的是一个中文:“用户名”

点击这个链接转到2。jsp时,接收id和name

id是int型的所以没问题

name我是这样接收的String name =new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
接收也正常。

2。jsp的地址栏为:http://localhost:8080/bbs/content.jsp?id=5&name=用户名

目前为止一切正常

可是当我复制 http://localhost:8080/bbs/content.jsp?id=5&name=用户名
粘贴在另一个页面地址栏后,接收到的中文“用户名”成了乱码“??????”

也就是说我不通过链接点进来而是直接把地址粘贴到地址栏,接收的中文参数就变成了乱码

这两种方式不一样吗?

该怎么解决这个乱码问题

...全文
541 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
willstrong88 2011-03-25
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 k1014247445 的回复:]

谢谢各位的回答

我把UTF-8全换成GB2312就好了
[/Quote]

能贴出您的部分原代码吗?(只要和中文转码有关的)
k1014247445 2010-12-26
  • 打赏
  • 举报
回复
谢谢各位的回答

我把UTF-8全换成GB2312就好了
Think Nothing 2010-12-23
  • 打赏
  • 举报
回复
首先确认你接收参数的项目里面用的是什么编码,查看方法:在eclipse里面右键代码文件,属性->资源(英文为:Properties-Resource)。假设为UTF-8
那么传参数的地方需要这样写
java.net.URLEncoder.encode("t.getUsername()", "UTF-8")
这样,接收的那边直接写(String)request.getParameter("name")就可以了
jack_qdb 2010-12-23
  • 打赏
  • 举报
回复
URIEncoding转值,TOMCAT设置<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" useBodyEncodingForURI="true" URIEncoding="UTF-8"/>

页面编码格式设为UTF-8,编译器一样

zjqhwd 2010-12-23
  • 打赏
  • 举报
回复
页面有form吧?把form的method改成post的吧...
wwangmax 2010-12-23
  • 打赏
  • 举报
回复
肯定不行,URL上不能直接传中文,你最好当前链接改成用javascript来提交,然后在javascript中将中文编码(使用函数encodeURIcomponent),最后提交就不会有问题了
k1014247445 2010-12-23
  • 打赏
  • 举报
回复
在网上找了很久,没找到解决方法
很多都是这样的:

<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" useBodyEncodingForURI="true" URIEncoding="UTF-8"/>

中加入useBodyEncodingForURI="true" URIEncoding="UTF-8"就可以了.


可是试了很多次也没用
k1014247445 2010-12-23
  • 打赏
  • 举报
回复
两个页面编码都是UTF-8
k1014247445 2010-12-23
  • 打赏
  • 举报
回复
刚加了isELIgnored="false"
还是不行
微甜灬呼吸 2010-12-23
  • 打赏
  • 举报
回复
两个页面编码一致就行~~~
智鹿软件 2010-12-23
  • 打赏
  • 举报
回复
乱码问题对初学者是比较头疼的问题,网上好好看看。
页面的编码、servlet格式化、过滤器转码、tomcat编码格式、xml文件编码格式
智鹿软件 2010-12-23
  • 打赏
  • 举报
回复
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false"%>

81,094

社区成员

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

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