问题描述:
ENOVIA系统部署后,在系统内可输入栏位进行中文输入后,确定后显示为乱码;
经测试在后台Matrix中可以对乱码直接修改为中文,修改后在前台直接显示中文。
分析:
应该问题在于过滤器没有将数据过滤为UTF-8
解决办法:
在ENOVIA生成war包后,找到C:\apache-tomee-plus-1.7.4\webapps\enovia\WEB-INF路径下web.xml文件,搜索utf-8,结果如下:
<!-- TomCat UTF-8 setting
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>com.matrixone.servlet.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
-->
发现关于UTF-8的设置没有去掉注释,删除其注释:
<!-- TomCat UTF-8 setting -->
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>com.matrixone.servlet.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
继续搜索UTF-8,结果如下:
<!-- TomCat UTF-8 filter mapping
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-->
发现关于UTF-8的过滤功能没有去掉注释,删除其注释:
<!-- TomCat UTF-8 filter mapping -->
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
保存后重新启动tomee,再次进行测试,发现web端显示正常。
在ENOVIA生成war包前,应在C:\enoviaV6R2015x\server\win_b64\resources\warutil\fragment路径下找到ENOLiveCollaborationServer.liveCollaborationServer.web.xml.part文件,修改以上说明中的uft-8的设置。