jboss7部署到jboss服务器,中文乱码有关问题
我的问题和下面这个问题差不多
-------------------------------------------------
最近项目中碰到一个问题:
问题场景:服务器A,服务器B在同一个CAS管理下,A向B发送一个包涵中文字符的链接,在B系统网页显示时中文显示乱码
问题分析:A向B发送链接时,因为用户没有登录B系统,B系统会重定向到CAS验证中心,在重定向过程中会把参数用URLEncode重新编一次码:
"中文" urlencode 后转化成 %E4%B8%AD%E6%96%87
再 urlencode 后转化成 %25E4%25B8%25AD%25E6%2596%2587 ,等于将“%”再编码了一次
针对以上问题解决方案:
将中文用base 64 编码,到B系统再base 64 解码(base64 urlSafeString编码),"%"问题解决
但是还是有乱码
问题场景:
将B系统部署在tomcat环境中,中文不乱码
将B系统部署在Jboss环境中,中文乱码
原因分析:可能是环境参数配置问题
解决方法:
- 修改jboss的bin/run.conf.bat Add below code to following
::JAVA_OPTS_SET set JAVA_OPTS=-Dfile.encoding="UTF-8"
- 如何war是用ant打包的,javac的时候需要制定encoding
<target name="compile" depends="prepare">
<javac srcdir="${src.java.dir}" destdir="${classes.dir}" debug="on" deprecation="on" optimize="off" includes="**/*.java" includeantruntime="false" encoding="UTF-8">
<classpath refid="classpath" />
</javac>
</target>
问题解决。
延伸阅读:
http://www.blogjava.net/sandy/archive/2012/01/19/368747.html
http://yang3wei.github.io/blog/2013/02/10/java-dfile-dot-encoding-equals-utf-8-gan-diao-luan-ma/
但是我的更改有点不同
我更改文件是standalone.bat 在其set JAVA_OPTS后加:-Dfile.encoding="UTF-8"
问题得到解决。
上一篇: javascript编程常用函数:jQuery功能函数详解
下一篇: RocketMq数据处理