日期:2014-05-20  浏览次数:20748 次

特殊字符和中文解码
一个简单的问题,从前台传来了一个文件名为"%+你好.jpg",在后台接收到并处理后存入数据库。
Java code

fileName = URLEncoder.encode(fileName, "UTF-8");//这种方式导致中文不能正常输出
fileName = fileName = URLDecoder.decode(fileName, "UTF-8");//这种方式导致包含%+等特殊字符报错


想要请教一个可以两全的方法!


------解决方案--------------------
前台转变下~~~ encodeURI(encodeURI(变量))2次 后台用fileName = fileName =URLDecoder.decode(fileName, "UTF-8")
------解决方案--------------------
前台页面中用:encodeURIComponent(encodeURIComponent(变量))
后台方法中: fileName =URLDecoder.decode(fileName, "UTF-8")
encodeURIComponent()方法会将参数中的中文,特殊字符进行转义,而不会影响整个url
楼主可以了解一下escape()、encodeURI()、encodeURIComponent()这三个方法。可以参考http://www.cnblogs.com/s1ihome/archive/2008/05/06/1184254.html