Docker容器java生成文件名称不支持中文
· 技术积累 · Docker

java服务跑在docker容器中,使用的centos7镜像,在导出文件在保存时中文名称都是????

问题:

百度搜的大多都是Dockerfile指定环境变量ENV LANG=C.UTF-8
或者就是在profile配置文件中加上LANG=zh_CN.UTF-8"
但是都不行,用的是官方的centos7镜像,里面支持的字符集没有zh_CN的,改了也是没有效

后来用谷歌搜索(只能说谷歌搜索的内容还是挺精准的,百度搜出来有用的很少),找到有效解决办法
参考链接:
https://blog.csdn.net/hnmpf/article/details/81478972
https://www.codeleading.com/article/22505552705/
https://blog.csdn.net/wo541075754/article/details/89787894

查看当前默认的语言字符集

lang.png

乱码.png

解决:

# 安装中文语言包
yum install kde-l10n-Chinese -y

# 重新安装glibc-common包
yum reinstall glibc-common -y

# 生成语言环境数据库
localedef -c -f UTF-8 -i zh_CN zh_CN.utf8

# 查看本地支持语言已经有zh_CN.utf8了
locale -a

使用的话,在Dockerfile构建镜像时候设置下ENV LANG=zh_CN.UTF-8,制作一个支持中文字符集的底层镜像

# 安装中文语言
RUN yum install net-tools kde-l10n-Chinese -y
RUN yum reinstall glibc-common -y
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8

# 指定环境变量ENV
RUN export LANG=zh_CN.UTF-8
RUN echo "LANG=zh_CN.UTF-8" > /etc/locale.conf
ENV LANG=zh_CN.UTF-8
ENV LC_ALL=zh_CN.UTF-8

本文最后更新时间 2023-11-17
文章链接地址:
https://me.jinchuang.org/archives/1203.html
本站文章除注明[转载|引用|原文]出处外,均为本站原生内容,转载前请注明出处


留言