程序在本机都是没有问题的,打包到docker容器里运行就中文乱码了。这个跟项目没有关系,是容器的问题。
镜像是基于centos8的,查一下镜像当前的语言
>> echo $LANG
en_US.UTF-8 ##这是centos8默认的
所以为了支持中文,重新制作镜像,添加环境变量设置:ENV LANG zh_CN.utf8
但是运行起来还是不行
检查容器所能支持的语言
>> locale -a
C
C.utf8
POSIX
只有这3种,没有zh_CN.utf8,所以的设置的环境变量没有生效,应该是因为是镜像,所以功能有腌割。默认的centos8支持的有几十种,包括zh_CN.utf8。
所以再次制作镜像,添加环境变量设置:ENV LANG C.utf8
就可以了。