UTF-8 编码在 Docker 中不起作用

问题描述 投票:0回答:3

我正在 Docker 容器中运行 Java 程序(从 Docker Compose 开始),它抛出了一堆由 UTF-8 字符引起的错误(因为它们无法映射到 ASCII 字符集)。 有没有办法从 docker-compose 文件启用 UTF-8 编码?

docker utf-8 docker-compose
3个回答
7
投票

您可以使用以下命令检查设置java参数,然后尝试运行您的java程序 -

export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8

如果使用上述命令可以正常工作,请在 docker 镜像构建过程中使用

ENV
命令进行设置。

如果您需要在 bash_profile 中设置它,请参阅 Dockerfile 的以下部分 -

RUN echo "JAVA_HOME=/opt/jdk1.8.0_65" >> ~/.bash_profile

4
投票

Dockerfile
中添加这些行:

RUN echo "LC_ALL=en_US.UTF-8" >> /etc/environment
RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
RUN echo "LANG=en_US.UTF-8" > /etc/locale.conf
RUN locale-gen en_US.UTF-8

来源:https://github.com/tianon/docker-brew-debian/issues/45


0
投票

如果Container输出非ASCII字符为乱码,只需添加

ENV LANG="C.UTF-8" \
    LC_ALL="C.UTF-8"

参见https://stackoverflow.com/a/41648500/20813300

© www.soinside.com 2019 - 2024. All rights reserved.