jsp 传值 jsp1<a href="/jsp2?name='管理员'" />管理员jsp2<% String name = request.getParameter("name")%>name 是乱码,为什么?怎么解决 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你用的是什么服务器?如果是tomcat的话,那你在server.xml的配置文件中把Connector的那个节点元素加一个:URIEncoding="gbk"这样就可以了。 String name = request.getParameter("name")name = new String(name.getByte("iso-8859-1"),"utf-8") Tomcat 6.0\conf\server.xml 里面有个Connector节点。按照一楼讲的改下试试。也可以直接在程序里面转换name=new String(name.getBytes("ISO-8859-1"),"GBK") name=new String(name.getBytes("ISO-8859-1"),"GBK")这个转换后管理员的“员”还是乱码 有两个Connector节点,加在那个上啊 ? 统一编码方式,可采用过滤器处理乱码public class Filter implements javax.servlet.Filter { public void destroy() { // TODO Auto-generated method stub } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html; charset=utf-9"); chain.doFilter(request, response); } public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub }}在web.xml里配置一下就可以了,这样整个项目都可以同用,我一般这样就可以处理基本的乱码问题,除非是数据库乱码另算,一般的页面传值应该可以处理,lz可试试 老兄,你在学习的时候,没有人提醒你,不要用 GET 方式传中文么?公司开发应该也不允许你用 GET 方式传中文吧A 标签中传值,JS 的 location 的 href 属性传值 以及 Form 表单的 action 设为 get 都是一样的传中文都一样会乱码,一般,你写个其它参数代替一下好了,如果是类型,你给个数字就好了,如果是实体中的数据,你最好还是传ID,要实在想传中文 那转为 十六进制编码或 Unicode 编码再传吧 刚才那个写错了,是Form 的 method 为 GET 找了一下,你看一 JScript 内置函数encodeURI(URIStr) 方法 或 escape(charString) 方法这两个方法都可以对 中文进行转换<script language="javascript">function frd(type){var param = encodeURI(type);location.href="/jsp2?name=" + param ;}</script>jsp1<a href="javascript;" onclick="frd('管理员')" >管理员</a>jsp2<% String name = request.getParameter("name") name = new String(name.getByte("iso-8859-1"),"utf-8")%> request.setCharacterEncoding("");""里面是你页面的pageEncoding 其实编码一直是java里面的一个问题,跟前台页面的编码有关,跟服务器地址编码有关,跟后台jsp文件编码也有关系,如果哪一个地方处理不好都不能解决问题,于是有一套自己的编码与解码方法是可行的前台编码:在get提交前先把要提交的内容encodeURIComponent(),保证把特殊字符转掉,然后再用@replace一下%在java代码里面,获取到这个参数先replace一下@然后再decodeURI();具体实现方式如下:前台页面:<a href="###" onclick="myEncode('管理员')" />管理员/jsp2?name=''<script> function myEncode(str){ str = generateUrl(encodeURIComponent(str)); location.href="/jsp2?name=" + str; }function generateUrl(url){ url = encodeURIComponent(url); url = url.replace(new RegExp('%','gm'),"@"); return url;}</script>jsp页面:String name = request.getParameter("name");name = java.net.URLDecoder.decode(name.replaceAll("@", "%"), "utf-8");目前这个方法无论服务器编码,无论页面编码,无论java代码是何编码都是可行的 在linux下,tomcat服务器下部署struts web程序,为什么访问速度很慢? 闹钟--再响功能---??求助 请教Spring事务回滚问题 Struts2 Action 的生命周期 问题 JSF,如何实现分页? 求jsp+servlet的问题~~~~~~~~~~~在线中 如何让jsp页面 强制显示excel文件 用HTTP发送SOAP消息后,为什么得不到结果? javamail 中发邮件时中文附件名的问题 各位大侠,我的第一个j2ee程序竟然有误。请指教::: java正则表达式的一个问题(?:),高手来解答一下 struts2 Actin 中的password没有值
name = new String(name.getByte("iso-8859-1"),"utf-8")
也可以直接在程序里面转换name=new String(name.getBytes("ISO-8859-1"),"GBK")
public class Filter implements javax.servlet.Filter { public void destroy() {
// TODO Auto-generated method stub } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=utf-9");
chain.doFilter(request, response); } public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub }}
在web.xml里配置一下就可以了,这样整个项目都可以同用,我一般这样就可以处理基本的乱码问题,除非是数据库乱码另算,一般的页面传值应该可以处理,lz可试试
公司开发应该也不允许你用 GET 方式传中文吧
A 标签中传值,JS 的 location 的 href 属性传值 以及 Form 表单的 action 设为 get 都是一样的
传中文都一样会乱码,一般,你写个其它参数代替一下好了,如果是类型,你给个数字就好了,
如果是实体中的数据,你最好还是传ID,要实在想传中文 那转为 十六进制编码或 Unicode 编码再传吧
encodeURI(URIStr) 方法 或 escape(charString) 方法
这两个方法都可以对 中文进行转换
<script language="javascript">
function frd(type){
var param = encodeURI(type);
location.href="/jsp2?name=" + param ;
}
</script>jsp1
<a href="javascript;" onclick="frd('管理员')" >管理员</a>
jsp2
<%
String name = request.getParameter("name")
name = new String(name.getByte("iso-8859-1"),"utf-8")
%>
<a href="###" onclick="myEncode('管理员')" />管理员/jsp2?name=''
<script>
function myEncode(str){
str = generateUrl(encodeURIComponent(str));
location.href="/jsp2?name=" + str;
}
function generateUrl(url){
url = encodeURIComponent(url);
url = url.replace(new RegExp('%','gm'),"@");
return url;
}
</script>jsp页面:
String name = request.getParameter("name");name = java.net.URLDecoder.decode(name.replaceAll("@", "%"), "utf-8");
目前这个方法无论服务器编码,无论页面编码,无论java代码是何编码都是可行的