浏览 3782 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-06-30
如题,如果servlet容器使用的是Tomcat,那么一般会在server.xml中配置URIEncoding来处理get传参的编码问题。由于我们项目中用了ckfinder,如果不配置URIEncoding的话,上传中文名字的图片时会显示不出来,因为会将图片路径中的中文转成unicode的形式而此时不能正确的对get解码。配置了URIEncoding以后,IE系列中7、8、9都没有问题,只有IE6时,貌似IE6对utf8的支持不完全,所以就算是自己在servlet或action中自行转码,也有问题,就是偶数个汉字可以,奇数个汉字,最后一个是乱码,就算一个字也如此。这时,就想到了不如在jsp中将参数先转成utf8编码格式的,再当参数放入,果然,测试通过。 代码:
<% String param = ""; if(request.getAttribute("selectParam")!=null) { param = request.getAttribute("selectParam").toString(); param = java.net.URLEncoder.encode(param,"UTF-8"); pageContext.setAttribute("selectParam",param); } %> 由于我的分页参数使用了selectParam,所以在此之前我先将该属性从request中取到,编码后再放入page作用域, 这样下面使用EL表达式取值的时候就是我编码以后的值了。
万恶的IE6浏览器,在中国怎么还不死呢?coder们伤不起。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-07-03
死不了的,政府部门大部分还都在用这玩意
|
|
返回顶楼 | |
发表时间:2012-07-03
sunliao_first 写道 死不了的,政府部门大部分还都在用这玩意
所以严重阻碍技术的革新啊 |
|
返回顶楼 | |
发表时间:2012-11-20
对于基数乱码问题,可以把中文字符转换一下,例如:
前台js代码参考如下 function exportXml(mibId,name) { var url = "../../servlet/BmpExportMibXmlServlet?flag=1"; var mibName = name+".xml"; url = url+"&mibId="+mibId+"&mibName="+encodeURI(mibName); window.open(url, ""); } 其中encodeURI(mibName)就是要转换的内容。 这样再到后台编写如下代码: String mibName = new String(req.getParameter("mibName").getBytes("ISO-8859-1"), "UTF-8"); resp.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(mibName, "UTF-8")); 以下这两句很重要 String mibName = new String(req.getParameter("mibName").getBytes("ISO-8859-1"), "UTF-8"); URLEncoder.encode(mibName, "UTF-8") 这样servlet输出名字时在IE6下就不会有乱码了. 应为这个问题被IE6坑了一天了,哎.... |
|
返回顶楼 | |