日志中出现乱码,如何解决?
问题描述
部署至弹性微服务中的业务,如果在日志中显示乱码,一般是由于 locale 的错误配置导致。
遇到这种情况时,可以通过以下方案解决,设置与您应用部署地域相应的编码配置。
解决方案
方案一:在您的镜像 Dockerfile 中,永久设置环境字符集环境变量。
如果您的应用部署在中国区,请使用以下参数:
ENV LC_ALL=“zh_CN.UTF-8”
如果您的应用部署在日本区,请使用以下参数:
ENV LC_ALL=“ja_JP.UTF-8”
方案二:在弹性微服务控制台,部署详情页面下的环境变量中,添加环境字符集。
如果您的应用部署在中国区,请添加以下环境变量:
如果您的应用部署在日本区,请添加以下环境变量:
说明与注意
日志中出现乱码,通常与两个问题相关:运行平台环境问题,以及开发环境或交互服务的编码问题。
上述的解决方案是通过配置 LC_ALL 的方法解决运行平台的环境问题,若问题仍存在:
若非交互环境中出现乱码,请检查您的开发环境中配置的编码是否为
UTF-8
。若在交互环境中出现乱码,请检查您交互时配置的编码(例如 HTTP 请求时
Content-type
)和交互对象的编码(如数据库编码)。镜像类应用配置环境变量前,请先通过如下命令查看镜像环境中支持的字符集,选择相应的 UTF-8 字符集:
$ locale -a | grep "UTF-8"