在基于Ubuntu的Docker容器中操作代码时,发现在本机上显示正常的中文注释,在容器中都是乱码。查看locale,找到了原因:

locale是Linux系统中多语言环境的接口,locale命令可以设置和显示程序运行的语言环境。在本例中,通过locale命令查看到的语言环境都是“POSIX”,显然无法支持中文显示。所以,接下来就需要寻找方法来设置可支持中文显示的语言环境。

locale的设置包括12个以LC_开头的变量,如上面截图中的LC_CTYPE~LC_IDENTIFICATION 12个变量。这12个变量分别代表:

  1. LC_CTYPE:语言符号及其分类,
  2. LC_NUMERIC:数字,
  3. LC_TIME:时间显示格式,
  4. LC_COLLATE:比较和排序习惯,
  5. LC_MONETARY:货币单位,
  6. LC_MESSAGES:信息,如提示信息、错误信息、状态信息、标题、标签、按钮和菜单等,
  7. LC_PAPER:默认纸张大小,
  8. LC_NAME:姓名书写方式,
  9. LC_ADDRESS:地址书写方式,
  10. LC_TELEPHONE:电话号码书写方式,
  11. LC_MEASUREMENT:度量衡表达方式,
  12. LC_IDENTIFICATION:locale对自身包含信息的概述。

locale在Ubuntu系统中的默认存放位置为:/usr/share/i18n/locales。

locale的语法规则:<语言>_<地区>.<字符集编码><@修正值>,例如zh_CN.UTF-8中,zh表示中文,CN表示中国大陆,UTF-8表示字符集。

让我们来看一下容器中已有的字符集:

没有我们想要的中文字符集,所以接下来需要安装一下:

apt-get -y install language-pack-zh-hans

安装完成后,再次执行locale -a,发现已经多了两个中文字符集zh_CN.utf8和zh_SG.utf8

Locale的设置

1. 修改/etc/profile文件

设置locale的方式有多种,我使用的是修改/etc/profile的方式。在/etc/profile的最下面添加如下两句:

export LC_ALL=zh_CN.utf8
export LANG=zh_CN.utf8

执行source /etc/profile 使其生效。然后,再次查看locale,已经发生了变化。

2. 修改/etc/locale.gen文件

执行vim /etc/locale.gen,可以看到该文件的内容:

将需要的语言和字符集的注释打开,并执行locale-gen命令使其生效。

3.  命令行设置

localectl set-locale LANG=zh_CN.UTF-8

4. 修改/etc/default/locale文件

注销重新登陆后生效。

5.  创建/etc/locale.conf文件

通过vim /etc/locale.conf创建文件,并写入需要的语言选项,然后通过source /etc/locale.conf使其生效。

该方法未经验证,需要的同学可自行尝试。

完成locale的设置后,容器中的中文乱码问题得到解决。

Ubuntu设置locale相关推荐

  1. ubuntu设置全攻略

    说明,本文档根据网上的文档修改而成,凡是经过自己实践的都做了修改. 硬盘安装: 将iso文件和wubi.exe(从iso中解压出来的)两个文件放到任意同一目录下,在windows下点击wubi.exe ...

  2. Win10应用商店版Ubuntu18.04子系统安装教程(附Ubuntu设置中文)

    Win10应用商店版Ubuntu18.04子系统安装教程 一.启用"适用于Linux的Windows子系统(WSL)" 二.启用开发人员模式 三.启用Linux子系统 四.下载并安 ...

  3. Ubuntu 设置中文 languagesupport

    Ubuntu 设置中文 languagesupport:想设置系统为中文显示,发现在系统设置里的languagesupport里的中文是灰色的,并且拖动到列表最上面也不起作用,查了网上有说法 直接设置 ...

  4. 【Firefly Ubuntu设置系统为中文失败原因说明及解决方法~】

    Firefly Ubuntu设置系统为中文失败原因说明及解决方法~ 近日在学习 ESP8266 RTOS IDF 开发,使用windows系统编译个 " hello,world" ...

  5. Linux(Ubuntu)设置环境变量(转载)

    Linux(Ubuntu)设置环境变量(转载) http://blog.csdn.net/wumingxing0228/article/details/6050175 环境变量是和Shell紧密相关的 ...

  6. ubuntu设置鼠标单击打开文件夹或者文件

    一般是默认是双击打开文件(夹),但在linux下,单击更爽! ubuntu设置鼠标单击打开文件夹或者文件,这样可以减少按鼠标的次数,让你的鼠标用得更久.试试吧!挺实用的哦!单击一下就能打开文件或者文件 ...

  7. ubuntu 设置开机启动与关闭开机启动(适用于部分linux系统)

    ubuntu 设置开机启动与关闭开机启动 首先,以apache开机启动的关闭为例, 参见:http://blog.csdn.net/lyhdream/article/details/8897618 然 ...

  8. ubuntu安装jdk,ubuntu设置java环境变量

    ubuntu安装jdk,ubuntu设置java环境变量,ubuntu安装jdk,ubuntu设置java环境变量,ubuntu安装jdk,ubuntu设置java环境变量 下载jdk-6u12-li ...

  9. VWware安装ubuntu设置静态IP

    昨天,我在自己的虚拟机上的Ubuntu上,做了一个简单的服务器.后来用手机去访问web项目,发现怎么也访问不了.后来,组长告诉我Ubuntu的ip与手机的ip地址不在一个网段内,需要为Ubuntu设置 ...

最新文章

  1. 阿里云智能对话分析服务
  2. R语言基础知识详解及概括
  3. redis-cluster配置
  4. SVM支持向量机绘图
  5. 远程声控系统(MATLAB代码见CSDN资源)
  6. BugkuCTF-MISC题可爱的故事
  7. 大数据可视化模板、模板框架、动态控件、可视化大数据原型、监控平台、图表元件库、数据看板、驾驶舱、统计图表、大数据驾驶舱、大屏展示、联勤治理、旅游、运输、车辆、校园、舆情、信息监测看板原型
  8. SHELL脚本--多命令逻辑执行顺序
  9. 刷脸支付为人们消费方式创始一个新纪元
  10. iphone手机html视频播放,iphone5视频格式 传到苹果手机上的视频怎么才能看
  11. 怎么用阿里云服务器部署项目?上传简单项目
  12. 矩阵基础 |共轭转置、单位矩阵、矩阵的迹
  13. 导入sql 出现错误代码: 1273
  14. 激光雷达还是摄影测量?两者数据融合如何提高点云质量
  15. 亚马逊工资翻倍!本地人士担忧:房价又要...
  16. 【Linux】RHCE -- RHCSA 认证考试 模拟练习题解析
  17. Camtasia“喀秋莎”2022一款录屏神器
  18. 矩阵相乘(Python)
  19. 云盘存储 教学反思_疫情时期,如何打造一堂高效在线直播课(附3套实用工具包)...
  20. python 矩阵输出

热门文章

  1. 小米电视4a和4c的区别
  2. 如何快速处理图片?超简单实用的图片处理工具推荐
  3. 2023最新天津python培训机构学习路线整理
  4. 干货!自己的程序利用 编程猫 第三方登录获取用户token
  5. blackberry起步-图片滚动
  6. 用HK-MSR165微型振动冲击记录仪记录动态机械应力,帮助优化机器、工件和生产
  7. A-LOAM源码阅读
  8. Android WIFI扫描时延
  9. Quartus Prime 原理图输入以及仿真流程
  10. 多款重磅翻译产品落地之际,我们独家专访了搜狗语音负责人王砚峰