Ubuntu 16.04.1法语系统无中文却显示中文时间戳问题求助
我之前也碰到过类似的locale配置问题,咱们一步步来拆解:
问题根源
这是因为系统的**区域设置(locale)**中,负责时间日期显示的LC_TIME变量被错误设置成了中文locale(比如zh_TW.UTF-8或zh_CN.UTF-8)。哪怕你没安装完整的中文语言包,时间日期的本地化字符串文件体积很小,可能在系统默认安装时就附带了,所以只要LC_TIME指向中文locale,系统就会用中文显示星期、月份和文件时间戳——这和时区设置无关,所以改时区也解决不了问题。
修复步骤
1. 先确认当前locale配置
打开终端执行以下命令,查看LC_TIME的具体值:
locale
如果输出里LC_TIME是zh_TW.UTF-8或者其他中文相关的locale,就验证了我们的判断。
2. 临时修复(重启后失效)
直接在终端执行以下命令,把LC_TIME改成法语locale:
export LC_TIME=fr_FR.UTF-8
现在再执行ls -lh和cal命令,应该就能看到法语的时间日期显示了。
3. 永久修复(重启后依然生效)
有两种方式可以实现永久生效:
方式一:编辑系统locale配置文件
用文本编辑器打开/etc/default/locale(需要sudo权限):
sudo nano /etc/default/locale
把文件内容修改为以下内容(确保所有locale项都指向法语):
LANG=fr_FR.UTF-8 LC_ALL=fr_FR.UTF-8 LC_TIME=fr_FR.UTF-8
保存退出后,执行以下命令让配置立即生效,或者直接重启系统:
source /etc/default/locale
方式二:用系统配置工具重新生成locale
执行以下命令打开locale配置向导:
sudo dpkg-reconfigure locales
在弹出的界面中:
- 先选中
fr_FR.UTF-8(如果没被选中的话),按空格键标记,然后按回车确认; - 接下来选择
fr_FR.UTF-8作为默认系统locale,按回车完成配置。
4. 检查用户级配置是否冲突
有时候用户的~/.bashrc、~/.profile或者~/.bash_profile文件里会有手动设置LC_TIME的语句,导致系统配置被覆盖。可以打开这些文件检查,如果有类似export LC_TIME=zh_TW.UTF-8的行,删掉或者改成fr_FR.UTF-8即可。
5. 补充:确保法语locale已生成
如果上述步骤没生效,可能是法语locale没正确生成,执行以下命令强制生成:
sudo locale-gen fr_FR.UTF-8
完成后再重新执行步骤3的配置即可。
内容的提问来源于stack exchange,提问作者Motiss




