SpagoBI升级版改名为knowage了。在使用Knowage-6.x的时候,发现user模块可以存中文但页面不能正确编码中文,而menu模块页面可以存部分中文,但数据库中却是乱码。
User:
Menu:
通过跟代码发现代码中都是设置的UTF-8,都是支持中文的,那问题就出在环境上。
解决办法
数据库配置
以Mysql为例
查找修改mysql.conf之类的配置文件。
1 | [mysql] |
Docker安装方式:1
2
3
4
5FROM mysql/mysql:5.6.38
MAINTAINER kavenran <ranyut@163.com>
RUN sed -i "s|\[mysql\]|[mysql]\ndefault-character-set=utf8\n[mysqld]\ncharacter-set-server=utf8\nlower_case_table_names=1|g" /etc/mysql/conf.d/mysql.cnfs
启动mysql服务之后记得给远程用户授权。
mysql> GRANT ALL PRIVILEGES ON . TO root@”%” IDENTIFIED BY “rootpassword”;
mysql> GRANT ALL PRIVILEGES ON . TO knowageuser@”%” IDENTIFIED BY “knowagepassword”;
mysql> flush privileges;
Tomcat配置
1.Windows 修改$tomcat_path/bin/catalina.bat
1
set JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8
2.Linux 修改 $tomcat_path/bin/catalina.sh
1
JAVA_OPTS="-Dfile.encoding=UTF-8"
3.Docker 修改官方镜像脚本 entrypoint.sh
1 | sed -i "s|#!\/bin\/sh|#!\/bin\/sh\nJAVA_OPTS=\"-Dfile.encoding=UTF-8\"|g" ${KNOWAGE_DIRECTORY}/${APACHE_TOMCAT_PACKAGE}/bin/catalina.sh |
配置之后可以正常保存和显示中文内容了。
使用过程中遇到任何问题欢迎留言或加入Knowage开源BI中国社区:QQ 158245788