今天在做项目时候遇到问题,中文总显示成乱码,试了很多方法,最后还是改了tomcat/conf/server.xml文件才可以显示中文。
问题描述:
<a class="button" target="_blank" href="detailshow.do?url=${jy:encode(bookInfo.url,'UTF-8')}&title=${jy:encode(jy:trim(bookInfo.title),"UTF-8")}
href="javascript:void(0);">信息</a></span></div>
其中title参数是中文,这个页面我们称为页面1,编码方式为UTF-8。
而页面2需要接收title参数并显示,页面2编码为GB2312,由于种种原因页面1的编码方式不可改变。但是页面2在呈现的时候中文一直乱码。
问题解决:
尝试各种方法,在页面2中用decode方法反编码title参数的值依然得不到正确的数值,在网上查阅诸多信息,忽然发现可能是tomcat有自己的编码方式,虽然是按utf-8传递,但是也许tomcat换了某种编码方式产生乱码,所以在tomcat/conf/server.xml文件中 修改
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
修改后中文正常显示。