问题描述:
windows环境下,将项目部署到weblogic运行startWebLogic.cmd启动weblogic后,浏览器访问页面乱码问题,在Tomcat不会乱码。
请不要看着博文就直接改了,先看完你的问题是属于哪种情况再改,避免走弯路!要对症下药。我就走了很多弯路
下面总结了1.2.3.4种解决方案,遇见最多的是前两中修改方案,请看:
1、页面乱码的修改方案:
a.先查看D:\oracle\middleware\user_projects\domains\base_domain\servers\AdminServer\logs\AdminServer.log(自己的域下servers文件夹下的\AdminServer\logs\AdminServer.log文件),搜索encoding=GBK,说明你的文件编码是GBK
b.D:\oracle\middleware\user_projects\domains\base_domain\bin下的setDomainEnv.cmd文件
c.打开,找到最后一个set JAVA_OPTIONS=%JAVA_OPTIONS%
修改为set JAVA_OPTIONS=%JAVA_OPTIONS% -Dfile.encoding=utf-8
即在startDomainEnv.cmd文件中:JAVA_OPTIONS=${JAVA_OPTIONS} -Dfile.encoding=UTF-8(红色是新加的)
在JAVA_OPTIONS后面加-Dfile.encoding=UTF-8,注意前面有空格
但是我这样做了还是不行,而且我这样做了之后,weblogic控制台乱码了
2、控制台乱码解决:
于是打开下面这个文件,在文件开头加chcp 65001,这个是改变cmd的编码格式为utf-8
D:\oracle\middleware\user_projects\domains\base_domain\bin\startWebLogic.cmd
这样是解决了控制台乱码,但是还是没用解决我最初的问题页面乱码。
3、web.xml:
<context-param>
<param-name>weblogic.httpd.inputCharset./*</param-name>
<param-value>UTF-8</param-value>
</context-param>
在web.xml中增加对 weblogic编码的配置,这个意思是解决JSP页面之间传递中文乱码的情况
然而还是没解决我的压面乱码问题
还有在startWebLogic.cmd文件中加-Dfile.encoding=UTF-8的,试了还是没解决我的压面乱码问题
后来,就分析问题,打开页面,只有头和尾的中文乱码,网页的内容部分正常,就在想为什么会这样,我的页面是jsp格式的,也在页面开头声明了编码格式,也还乱码。
4、修改页面导入文件:
后来终于想明白了我在几乎所有页面都使用了<c:import url="...">来引入公共的部分,于是发现这才是问题的根源,在这个c标签中增加charEncoding="UTF-8",即<c:import url="..." charEncoding="UTF-8">
重新部署,终于解决了!
总结:
1.2.3种方法我都试了,后来于是把1.2的其他文件都还原了,3没有还原(这个我想加上也没事,没有试删除后的情况,感兴趣的可以查一下)再部署也没有乱码,可见这个乱码和其他人不是同样的情况!真是不容易啊!
希望对你有帮助,有说的不对的地方欢迎指正哦
---------------------
作者:ibigboy
来源:CSDN
原文:https://blog.csdn.net/ibigboy/article/details/83501546
版权声明:本文为博主原创文章,转载请附上博文链接!