当前位置: 首页 > news >正文

部署问题集合(二十三)设置Docker容器内的中文字符集,解决某些情况下中文乱码的问题

前言:

  • 同事给了一个服务,在Windows环境下怎么跑都正常,但一到Linux虚拟机里就中文乱码
  • 起初就想到了可能是字符集的问题,但调整了半天也没见效果,最后隔了几天突然想到,我是构建Docker跑的,而且基础镜像就是centos,封闭的环境下修改外部虚拟机的字符集肯定没作用啊,笨比
  • 然后就想到了进入容器内部,修改容器内部的字符集,果然就好了
  • 若要修改成其他字符集,同理可得(有没有感觉这句话莫名熟悉)

修改正在运行的Docker容器内的字符集

  • 先进入Docker容器:docker exec -it 容器ID /bin/bash
  • 查看是否支持中文字符集:locale -a | grep zh(PS:这一步如果之前没有特意下过,那么大概率就是没有,所以不用担心,继续老老实实下一步)
  • 下载中文字符集:yum install kde-l10n-Chinese -y
  • 设置名称:localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
  • 看看现在有没有:locale -alocale -a | grep zh
  • 把设置写到配置文件里:echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
  • 设置中文字符集:设置俩,第二步可能会报错,但我也不知道为啥报错了还能设置成功(-_-)
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
  • 查看是否修改成功:locale

若通过Dockerfile构建,想从源头开始设置

  • 修改Dockerfile中的内容,添加如下代码,然后重新构建即可
RUN yum install -y kde-l10n-Chinese && \localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 && \echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf && \yum clean allENV LANG="zh_CN.UTF-8" \LC_ALL="zh_CN.UTF-8"

参考

  • CentOS7设置字符集为zh_CN.gbk
  • RHEL系列Docker镜像中GBK字符编码配置
http://www.lryc.cn/news/149450.html

相关文章:

  • Web AP—PC端网页特效
  • Spring线程池ThreadPoolTaskExecutor使用
  • spring mvc的执行流程
  • docker作业
  • java实现本地文件转文件流发送到前端
  • 2020ICPC南京站
  • Linux 中的 chsh 命令及示例
  • JavaScript 数组如何实现冒泡排序?
  • ZooKeeper集群环境搭建
  • 【跟小嘉学 Rust 编程】二十、进阶扩展
  • pytorch学习过程中一些基础语法
  • 判断聚类 n_clusters
  • 基于深度学习的网络异常检测方法研究
  • SSM 基于注解的整合实现
  • 工具类APP如何解决黏性差、停留短、打开率低等痛点?
  • 使用Java MVC开发高效、可扩展的Web应用
  • wandb安装方法及本地部署教程
  • stable diffusion实践操作-提示词插件安装与使用
  • 【SpringBoot】详细介绍SpringBoot中的bean
  • 【Nuxt实战】在Nuxt3项目中如何按需引入Element-plus
  • 专业制造一体化ERP系统,专注于制造工厂生产管理信息化,可定制-亿发
  • Linux工具
  • Java项目-苍穹外卖-Day07-redis缓存应用-SpringCache/购物车功能
  • 零知识证明(zk-SNARK)(一)
  • linux中打印数据的行缓冲模式
  • 香橙派OrangePi zero H2+ 驱动移远4G/5G模块
  • 自动驾驶——【规划】记忆泊车特殊学习路径拟合
  • 【跟小嘉学 Rust 编程】十六、无畏并发(Fearless Concurrency)
  • Android 进阶——图形显示系统之VSync和 Choreographer的创建详解(一)
  • SQL Server开启变更数据捕获(CDC)