已经很久没碰到乱码的问题的,因为之前一直都是从jsp到数据库到时指定同一编码:UTF-8,所以都很少会出现乱码的,但今天出现一个比较特殊的情况,在提交上传文件后,本地文件名保存在数据库时的中文是正常的,但就说明及标题不正常,乱码了。代码如下:
其中,addFile.html是用到reurlwrite.jar这个URL重写的,在本机上(windows系统)上做服务器,连接的数据库是linux上的mysql,一切正常,但布署到linux上后,那就是数据库那台机子上就会出现乱码的问题。修改代码转字符编码也是一行,后来上网搜到有一个页面说reurlwrite.jar这个会转字符编码的,后来又在web.xml里将代码改为:
重启,也是不行的,后来就直接不要url重写,用来原来[color=darkred]/upload/index.do[/color]来提交,竟然报404的错,正在郁闷时,细想一下报404是因为找不到,是不是这个.do的路径有问题呢?就将其更改为[color=darkred]/uploads/index.do[/color]再来提交,OK了。
是什么原因令到/upload/index.do这个路径找不到呢?可能是在同一个tomcat里有还有另一个这样的路径,我一个tomcat里布署了几个项目的。看来以后这些路径命名还是不要用到一个比较通用的关键字好,如在前加一个项目的简写以作区分就最好了。
另,不知道上面那上在web.xml里这样写转reurlwrite.jar字符编码的对不对呢?也有可能是写不对才不起作用的原因!
<form action="/addFile.html" enctype="multipart/form-data" method="post">
<table>
<tr><td>文件名:<input type="text" name="title" value=""/></td></tr>
<tr><td>文件:<input type="file" name="file" /></td></tr>
<tr><td>说明:<textarea name="fileCaption" cols="50"</td></tr> rows="3"></textarea>
</table>
</form>
其中,addFile.html是用到reurlwrite.jar这个URL重写的,在本机上(windows系统)上做服务器,连接的数据库是linux上的mysql,一切正常,但布署到linux上后,那就是数据库那台机子上就会出现乱码的问题。修改代码转字符编码也是一行,后来上网搜到有一个页面说reurlwrite.jar这个会转字符编码的,后来又在web.xml里将代码改为:
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
重启,也是不行的,后来就直接不要url重写,用来原来[color=darkred]/upload/index.do[/color]来提交,竟然报404的错,正在郁闷时,细想一下报404是因为找不到,是不是这个.do的路径有问题呢?就将其更改为[color=darkred]/uploads/index.do[/color]再来提交,OK了。
是什么原因令到/upload/index.do这个路径找不到呢?可能是在同一个tomcat里有还有另一个这样的路径,我一个tomcat里布署了几个项目的。看来以后这些路径命名还是不要用到一个比较通用的关键字好,如在前加一个项目的简写以作区分就最好了。
另,不知道上面那上在web.xml里这样写转reurlwrite.jar字符编码的对不对呢?也有可能是写不对才不起作用的原因!