apusic应用服务器下乱码问题的解决办法

在移植过程中,最常见的问题之一就是字符集乱码,甚至有时候在上线一段时间后还会发现某些特殊中文字出现乱码,我们也经常会遇到来自于客户这样的疑问:“应用在Tomcat上跑的好好的,怎么一到Apusic上就乱码呢”。事实上并不是说Tomcat下没有乱码问题,只是因为通常在调试测试阶段都是使用Tomcat,可能在开发阶段已经规避了这个问题,比如使用Filter的方式进行了转码。

实际上Apusic也有一些关于字符集的参数,而且不需要编写代码,更节省工作量,也更高效。

参数一:

在$APUSIC_HOME(4.0.3)或$DOMAIN_HOME(5.0及以上)目录下的config/web.xml中增加以下参数:
<context-param>
<param-name>request.charsetencoding</param-name>
<param-value>GBK</param-value>
</context-param
>

这个参数的适用场景如下:
当使用request来传递带有中文字符的参数时,可以使用这个参数来设置字符集的类型,其中的param-value可以根据应用的实际需要设置成:
gb2312、GBK、UTF-8等。

参数二:

在$APUSIC_HOME(4.0.3)或$DOMAIN_HOME(5.0及以上)目录下的的config/apusic.conf中的
WebService服务中增加参数:
<ATTRIBUTE NAME="URIEncoding" VALUE="GBK"/>

修改后的apusic.conf的WebService服务如下:
<SERVICE
CLASS="com.apusic.web.WebService"
>
<ATTRIBUTE NAME="MaxWaitingClients" VALUE="500"/>
<ATTRIBUTE NAME="WaitingClientTimeout" VALUE="5"/>
<ATTRIBUTE NAME="KeepAlive" VALUE="true"/>
<ATTRIBUTE NAME="KeepAliveTimeout" VALUE="15"/>
<ATTRIBUTE NAME="MaxKeepAliveRequests" VALUE="100"/>
<ATTRIBUTE NAME="MaxKeepAliveConnections" VALUE="300"/>
<ATTRIBUTE NAME="NumberSelectors" VALUE="1"/>
<ATTRIBUTE NAME="ServletReloadCheckInterval" VALUE="3"/>
<ATTRIBUTE NAME="EnableLog" VALUE="False"/>
<ATTRIBUTE NAME="LogFileName" VALUE="logs/access.log"/>
<ATTRIBUTE NAME="LogFileLimit" VALUE="1000000"/>
<ATTRIBUTE NAME="LogFileCount" VALUE="10"/>
<ATTRIBUTE NAME="URIEncoding" VALUE="GBK"/>
</SERVICE>

这个参数的适用场景如下:
1、 在jsp中使用redirect方式进行页面跳转时带有中文参数;
2、 在jsp中使用windows.open()方式打开新窗口时带有中文参数;
3、 在常见的点击左侧树状菜单项右侧内容区域展示不同页面时需要传递中文参数。
类似上述情况的在URI中传递中文时出现了乱码,这个参数基本上都可以解决问题。

上面的两个参数可以解决大多数情况下的中文乱码问题,当然偶尔也会遇到解决不了的问题,那就需要对问题进行具体的分析了,如果有源码可以进行断点跟踪,没有的话也可以使用一些辅助工具。

注:本文内容来自我的同事宋凯的总结
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值