SpagoBI/knowage中文乱码问题解决


SpagoBI升级版改名为knowage了。在使用Knowage-6.x的时候,发现user模块可以存中文但页面不能正确编码中文,而menu模块页面可以存部分中文,但数据库中却是乱码。

User:

Menu:

通过跟代码发现代码中都是设置的UTF-8,都是支持中文的,那问题就出在环境上。

解决办法

数据库配置

以Mysql为例

查找修改mysql.conf之类的配置文件。

1
2
3
4
5
[mysql]
default-character-set=utf8

[mysqld]
character-set-server=utf8

Docker安装方式:

1
2
3
4
5
FROM 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


文章作者: KavenRan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 KavenRan !
 上一篇
令人称赞的13个shell脚本技巧 令人称赞的13个shell脚本技巧
脚本代是开发人员写给开发人员看的,如果你想让后面看你代码的人称赞的话你应该考虑你的代码风格。 失败代码风格会导致一些问题: 混乱的脚本——我知道,我们都是工程师,读得懂代码,但即使这样,也请为我们这些对 Shell 脚本不是很熟练的
2018-06-19
下一篇 
微服务架构下的安全认证与鉴权 微服务架构下的安全认证与鉴权
内容简介 微服务下常见认证解决方案; OAuth认证与授权; JWT认证介绍; Spring Cloud的OAuth2实现; 单体应用转变为分布式应用单体应用转变为分布式应用在架构方式上存在较大区别,单体应用下的简单架构方式如下:
2018-04-20
  目录