`

部署到jboss服务器 中文乱码问题

    博客分类:
  • web
 
阅读更多

最近项目中碰到一个问题:

 

问题场景:服务器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/

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics