修复shell中复制粘贴中文乱码多#问题
🧩 一、在容器里手动修复(当前容器)
在容器中依次运行以下命令:
apt update
apt install -y locales
locale-gen en_US.UTF-8
update-locale LANG=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
然后执行:
locale
你应当看到:
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
...
✅ 现在复制粘贴、中文显示都不会再乱码或移位。
🐳 二、在 Dockerfile 中永久修复(推荐)
如果你想以后构建的容器都默认正常,可以在 Dockerfile 中加几行 👇
FROM ubuntu:20.04ENV LANG=en_US.UTF-8 \LANGUAGE=en_US:en \LC_ALL=en_US.UTF-8RUN apt update && apt install -y locales && \locale-gen en_US.UTF-8 && \update-locale LANG=en_US.UTF-8
这样容器启动后,locale 就已经是 UTF-8 了,不用再每次手动设置。
💡 三、如果你需要中文支持(例如中文日志或显示)
可以用中文 locale:
ENV LANG=zh_CN.UTF-8 \LANGUAGE=zh_CN:zh \LC_ALL=zh_CN.UTF-8RUN apt update && apt install -y locales && \locale-gen zh_CN.UTF-8 && \update-locale LANG=zh_CN.UTF-8
然后执行:
echo "你好,世界"
正常显示中文就说明一切生效 ✅。
🚀 四、快速一键修复命令(适合当前容器)
如果你只想在现有容器中一键搞定:
apt update && apt install -y locales && locale-gen en_US.UTF-8 && update-locale LANG=en_US.UTF-8 && export LANG=en_US.UTF-8 && export LC_ALL=en_US.UTF-8
是否希望我帮你写一个完整的 Dockerfile 例子(带 UTF-8 locale + 时区 + 常用工具)?
那样你以后构建的镜像都不会再出现乱码问题。
