一,图片改为英文名
二,对图片的路径名进行处理,假设图片路径名为String imgRoot=new String(imgRoot.getBytes("ISO-8859-1"),"GB2312") 或者 url =java.net.URLEncoder.encode(imgpath,"UTF-8");
你可能还不知道jsp在在传递中文时候会出现乱码 所以说你的图片路径在传递后的路径系统识别不出来了
所以你要么改成英文的,要么解决中文乱码的问题 怎么解决呢?
这有篇文章,你看看,我试过,可以成功 关于JSP中文乱码 JSP文件中乱码现象经常遇到,那如何处理就是我们不可避免的话题,那么该如何解决呢,
下面我针对不同的情况,给出几种处理方式:
1) JSP页面中文乱码,这种情况比较好处理,在页面的page指令中加上如下一项就行
2) JSP页面采用表单提交时,提交的数据中包含中文,并且提交方式为post这时我们获取表单数据后,展示到其它页面时会出现乱码,解决方案是在获取请求中的参数前,先设置请求的字符集。如下代码: request.setCharacterEncoding(“UTF-8”) ;
3) 还是表单提交数据,但是提交方式为默认的get方式,这时即使我们设置了请求字符集,但取出来还是乱码,这时需要如下的转换方式,我把转换方式用一个编码转换类来实现了。
/* * 定义一个转换字符集的工具类CharSetTool * * 定义一个方法,用来转换 */
public class CharSetTool {
/* * 方法toUTF8() * 参数: @inStr 传入要转换的字符串 */
public static String toUTF8(String inStr) {
String rtStr="";
if(inStr!=null) {
try {
rtStr=new String(inStr.getBytes("ISO-8859-1"),"UTF-8"); }
catch (UnsupportedEncodingException e) {
//打印错误信息 System.out.println(e.getMessage());
}
} return rtStr;
}
}
4) URL中文参数乱码处理, 比如:超链接方式 <a href="next?str=">我是链接,单击可以提交参数
注:next 为 Servlet的URL Pattern 那在将中文作为参数值传递时,首先要把中文字符串进行编码转换,转换成URL格式
操作如下: <a href="next?str=">我是链接,单击可以提交参数 综合以上几种比较常见的JSP中文乱码的处理方式,不管是何种提交方式,我们都可以使用JSP中的过滤器(Filter)来过滤字符编码,下面我就给出一个我自己定义的 “通用”的字集编码过滤器。
/** * 处理中文字符集的过滤器 * * @author Administrator * */
public class EncodingFilter implements Filter {
//过滤器销毁的方法 public void destroy() {
} public void doFilter(ServletRequest request, ServletResponse response,FilterChain chan) throws IOException, ServletException {
//设置响应模式 response.setContentType("text/html;charset=UTF-8");
//判断客户端的提交方式
if(((HttpServletRequest)request).getMethod().equalsIgnoreCase("POST")) {
//POST方式提交
//设置请求字符集 request.setCharacterEncoding("UTF-8");
} else {
//处理GET //获取所有的提交参数
Enumeration names = request.getParameterNames(); //遍历
while(names.hasMoreElements()) { //参数名
String name = (String)names.nextElement(); //因为不知道参数是多值还是单值
String values[] = request.getParameterValues(name); //循环处理字符集转换
for(int i=0;i<values.length;i++) {
values[i] = toUTF8(values[i]); }
}
} //调用过滤器链中的下一个过滤器
chan.doFilter(request, response);
} //转换方法(内部私有方法)
private String toUTF8(String str) {
String rt = null; try { if(str!=null) {
//转换新字符集 rt = new String(str.getBytes("ISO-8859-1"),"UTF-8"); }
} catch (UnsupportedEncodingException e) {
// TODO 自动生成 catch 块 e.printStackTrace(); }
return rt; } //初始化方法
public void init(FilterConfig config) throws ServletException {
} }
然后在web.xml文件中进行相关的配置 : EncodingFilter ocean.mvc.filter.EncodingFilter EncodingFilter /*
还有就是在tomcat里配置编码URIEncoding为UTF-8格式的
分享到:
相关推荐
<div class=title>首页 - <a href="add.php">发布信息</a> - <a href="zhaoling.php">招领信息</a> - <a href="yishi.php">遗失信息</a> - <a href="login.php" target="_blank">后台管理</a> </div> <? require...
<#if item = "spring"><#break></#if> ... </#list> <#list sequence as item> ... <#if item = "spring"><#break></#if> ... </#list> 关键字 item_index:是list当前值的下标 item_has_next:判断list是否...
<a href ="[removed]void(0)" class="layui-btn"> <i class="fa fa-refresh"> </i>导出Excel </button> </a> function listHbaseExcel(url){ var tableName=$("#tableName").val(); if(tableName==null ||...
.println("<p /><a href=\"upload2.jsp\" target=\"_top\">返回</a>"); return; } long now = System.currentTimeMillis(); // 根据系统时间生成上传后保存的文件名 String prefix = String.valueOf(now); /...
21. <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop> 22. <prop key="hibernate.cglib.use_reflection_optimizer">true</prop> 23. </props> 24. </property> 25. </bean>...
.println("<p /><a href=\"upload2.jsp\" target=\"_top\">返回</a>"); return; } long now = System.currentTimeMillis(); // 根据系统时间生成上传后保存的文件名 String prefix = String.valueOf(now); // 保存...
<li><a href='{kqiqi:ModuleUrl}'>{kqiqi:ModuleTitle}</a></li> {/kqiqi:modulemenu} '单页外部频道更新后调用方式,其中current为你的CSS中定义的class或ID.和class="{kqiqi:CurrentStyle}"或id="{kqiqi:...
前端请求二进制文件流,返回的是乱码,如下图: 这个时候先别急着找后端,只要能下载生成想要的文件,文件打开内容是正确的都好说.下面总结几种生成导出的写法: 一. a标签点击下载 let blob = new Blob([res.data], {...
下面小编就为大家带来一篇关于a href传参的中文乱码问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
欢迎来到<a href="http://www.163.com">http://www.163.com</a> <br /><br /> 感谢您注册为本站会员!<br /><br /> </body> </html> '; $mail->AltBody ="text/html"; if(!$mail->Send()) { echo "邮件发送有...
如果该超连接在页面中,可通过<a>的onclick事件到js中通过上面的方法解决,也可..... 2.在服务器端/后台/后台程序中设置请求流和响应流的编码方式和页面上的编码方式一致:request().setCharacterEncoding("utf-8");...
Vm中一个超链接URL需要拼接中文作为Get请求的参数如果直接拼接,传到后台Action的参数对象中后取出会是乱码,需要编码后再拼接到URL上,接下来将和大家分享一下解决方法
List<NameValuePair> formparams = new ArrayList<NameValuePair>(); formparams.add(new BasicNameValuePair("username", "admin")); formparams.add(new BasicNameValuePair("password", "123456")); ...
sortid=ID号"></script>,其中ID号为记录号,即为该列表中的调用ID列中的数值。然后把该调用代码加到模板相应地方即可。例如要调用最新5个会员,ID号为1,那么调用代码为:<script src="Ns_News.asp?sortid=1"></...
// 解决附件名称乱码 mp.addBodyPart(bp);// 添加附件 files.add(fileds); } catch (Exception e) { System.err.println("增加邮件附件:" + filename + "发生错误!" + e); return false; } return true; } public...
{Tilte: \u535a\u5ba2\u56ed, Href: //www.jb51.net} 经常遇到这样内容的json字符串,原来是把其中的汉字做了Unicode编码转换。 Unicode编码: 将汉字进行UNICODE编码,如:“王”编码后就成了“\王”,UNICODE字符...