IntelliJ 中的 Docker 容器控制台编码

Posted

技术标签:

【中文标题】IntelliJ 中的 Docker 容器控制台编码【英文标题】:Docker-Container Console Encoding in IntelliJ 【发布时间】:2021-06-16 21:57:14 【问题描述】:

我的问题如下:

我正在努力实现,Docker-Container 的 Console ion IntelliJ 使用正确的编码。现在它看起来如下:

在 Docker 本身中,它看起来像这样:

如果我在 IntelliJ 中运行一个简单的主程序,输出如下:

我将在 IntelliJ 中找到的每个选项都更改为 UTF-8,但仍然没有任何改变。奇怪的是,它确实可以在 Docker 和普通控制台中工作,而不是 IntelliJ 中的 Docker-Console。 Dockerfile 是这样的:

FROM fabric8/java-alpine-openjdk11-jre:latest

ENV JAVA_OPTIONS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
ENV AB_ENABLED=jmx_exporter
#ENV JAVA_TOOL_OPTIONS = "-Dfile.encoding=UTF8"

# Be prepared for running in OpenShift too
RUN adduser -G root --no-create-home --disabled-password 1001 \
  && chown -R 1001 /deployments \
  && chmod -R "g+rwX" /deployments \
  && chown -R 1001:root /deployments

COPY target/lib/* /deployments/lib/
COPY target/*-runner.jar /deployments/app.jar
EXPOSE 8080

# run with user 1001
USER 1001

ENTRYPOINT [ "/deployments/run-java.sh" ]

注释掉的 Line 是我修复它的尝试之一,还将选项添加到 JAVA_OPTIONS。没有帮助(即使没有添加选项“file.encoding”返回 UTF-8)。而且由于它在 Docker 中完美运行,我认为问题不在文件中。

我还能尝试什么?

【问题讨论】:

基础镜像需要配置。主要是ENV LANG=en_US.UTF-8 ENV LANGUAGE=en_US.UTF-8 这没有帮助,仍然是同样的错误。但我仍然认为它在 IntelliJ 中存在问题,因为它在 Docker 控制台中运行良好 【参考方案1】:

IntelliJ IDEA -> 帮助 -> 编辑自定义 VM 选项 并添加行: -Dfile.encoding=UTF-8

【讨论】:

以上是关于IntelliJ 中的 Docker 容器控制台编码的主要内容,如果未能解决你的问题,请参考以下文章

在 IntelliJ IDEA 的 docker 容器中远程调试 Java 9

无法从Intellij连接到在docker容器中运行的mySql - “指定的数据库用户/密码组合被拒绝”

使用 Intellij/Rubymine 在 docker 中调试 rails 应用程序

docker 容器中的 H2 DB

使用intellij远程调试nodejs

Intellij,Spring 开发工具远程,Docker,错误意外的 404 响应上传类文件