You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django i18n编译及Bitbucket推送编码问题求助

Django i18n编译与Bitbucket推送编码问题排查方案

问题1:Django compilemessages 报'latin-1'编码错误

  • 强制指定.po文件编码头:打开所有.po文件,确认开头的Content-Type字段是charset=UTF-8,比如:
    "Content-Type: text/plain; charset=UTF-8\n"
    
    若系统默认生成的是latin-1,手动修改成UTF-8。
  • 固定终端环境编码:在Fedora终端执行以下命令,强制设置UTF-8编码后再运行编译命令:
    export LC_ALL=en_US.UTF-8
    export LANG=en_US.UTF-8
    python manage.py compilemessages
    
    想永久生效的话,把前两行加到~/.bashrc或~/.zshrc里,重启终端即可。
  • 验证并转换.po文件编码:用file命令检查文件实际编码,比如:
    file your_app/locale/es/LC_MESSAGES/django.po
    
    若输出不是UTF-8,用iconv转码:
    iconv -f latin-1 -t UTF-8 django.po > django_new.po && mv django_new.po django.po
    
  • 清理编译缓存:删除locale目录下所有.mo文件,重新编译,避免旧缓存干扰。
  • 关于LANGUAGE_CODE设为'es'偶尔成功:这只是巧合——西班牙语环境下系统临时匹配了编码,不是根本解决办法,核心还是要统一全流程的UTF-8编码设置。

问题2:Bitbucket推送时xkbcommon UTF-8编码错误

  • 修正系统区域编码:用localectl status查看当前区域设置,若不是UTF-8,执行以下命令永久修改:
    sudo localectl set-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8
    
    重启系统或终端生效。
  • 配置Git全局编码:执行以下命令强制Git用UTF-8处理所有文件和提交信息:
    git config --global core.encoding UTF-8
    git config --global gui.encoding UTF-8
    git config --global i18n.commitencoding UTF-8
    git config --global i18n.logoutputencoding UTF-8
    
  • 调整PyCharm终端编码:打开PyCharm的Settings → Tools → Terminal,在Shell path对应的终端配置里添加环境变量LC_ALL=en_US.UTF-8,或者直接在PyCharm内置终端里先执行export LC_ALL=en_US.UTF-8再推送代码。
  • 归一化仓库文件编码:执行以下命令让Git重新识别所有文件的UTF-8编码,然后提交:
    git add --renormalize .
    git commit -m "Normalize file encodings to UTF-8"
    

内容的提问来源于stack exchange,提问作者Alvar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 14:28:30