docker 容器指定utf-8編碼,解決中文亂碼

快乐小洋人發表於2024-10-14

在執行 Docker 容器的時候,如果容器內應用需要使用 UTF-8 編碼來正常處理中文,你可以透過設定環境變數來指定編碼。

可以使用 -e 或者 --env 標誌來設定環境變數。比如,設定 LANG 和 LC_ALL 環境變數為 C.UTF-8 或者 en_US.UTF-8:

docker run -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 -it <image_name>

或者,如果你的應用支援 en_US.UTF-8 編碼:

docker run -e LANG=en_US.UTF-8 -e LC_ALL=en_US.UTF-8 -it <image_name>

注意:
不同的基礎映象可能需要不同的設定。比如,一些基礎映象可能需要你首先生成 locale 資料。
如果你發現設定了環境變數後中文仍然顯示亂碼,可以嘗試在構建 Docker 映象時使用以下命令:

FROM your_base_image

# 安裝 locales 並設定 UTF-8
RUN apt-get update \
    && apt-get install -y locales \
    && locale-gen en_US.UTF-8

ENV LANG en_US.UTF-8
ENV LC_ALL en_US.UTF-8

# ... 後面是你構建映象的其他步驟 ...

上述 Dockerfile 是以 Debian 或者 Ubuntu 為基礎的映象示例,如果你使用的是別的 Linux 發行版,你可能需要調整命令來適應相應的包管理器和配置方式。

記得,每當你修改了 Dockerfile 之後,都需要重新構建映象。

docker build -t your_custom_image_name .

然後你執行容器時就不需要再指定環境變數了,除非你需要覆蓋 Dockerfile 中的設定。

docker run -it your_custom_image_name


原文章地址:
https://blog.csdn.net/x1131230123/article/details/137639902

相關文章