前言

  这次遇到的问题不是我亲自遇到的,不过我也参与了问题的研究。
  最后的解决方案已经写在上面了,这里只是记录一下我们填坑的经过。

Maya 中文乱码

alt

  问题如上图,Maya的中文显示全部为乱码。


  我首先联想到了以前弄 Maya 工具架的坑。
  Maya 工具架的代码 存在 我的文档的 prefs的 shelves 文件夹里面
  通过 mel 代码存储, Maya 默认的存储格式跟随系统,字符为 gbk
  我曾经在工具架的图标代码里面写入了一大堆生成界面的代码,后面因为要修改工具架。
  又将工具架的 mel 文件通过 vscode 处理保存为了 utf-8
  结果 Maya 读取 mel 的中文就全部变成了乱码。
  点击工具架生成图标之后生成的界面也是乱码。
  因此我一开始是从这个角度去尝试寻找解决方案。

  总之,无论如何也要找到菜单生成界面的代码,看看里面的编码格式是否存在问题。
  我就找了一下 prefs 文件夹下面,貌似自定义菜单是没有存储到 mel 的操作。
  一般自定义菜单都是开启了 Maya 之后通过 mel 命令添加上去的。


alt

  果不其然,这个问题和我上面遇到的坑是不一样的。
  这次是纯粹的中文,而且上面已经定义了这个文件使用 gbk 编码格式,因此这个写法应该没有问题。
  于是我再次确认,这个插件显示问题是一台机器的问题还是全部机器的问题。

  回答是只有当前这台机器有问题,因此可以锁定在当前电脑系统环境下的问题。

问题详情

  问题情况也远远比我想象得还要严重得多!

alt

  Maya 运行启动脚本打印输出也是乱码。
  我怀疑是不是系统的语言不是 中文 ,但是又使用了 gkb 编码导致乱码。
  于是我让她用 python 输出一下当前系统的语言环境。

1
2
3
4
from PySide2 import QtCore
print QtCore.QLocale.system().name()
import locale
print locale.getlocale()

alt

  然而输出的系统语言信息很正常。

alt

  结果这个反馈给到我真的是让我惊呆了。
  没想到所有的中文打印都是乱码,唯有 gbk 解码才正常 !!!∑(゚Д゚ノ)ノ

寻找解决方法

  首先我想到的是 Maya 版本的问题。
  删除我的文档的 Maya 文件夹,还原 Maya 配置, 然而反馈问题依旧。
  而且无论是 Maya 2015 还是 2017 都有同样的问题。


  于是我想到可能这个问题和 Maya 没有关系。
  于是我让她检查一下 python 环境下的是否输出乱码。

alt

  Maya无关石锤了,这个原生 python 输出居然也是乱码。
  其实到这一步,我的思路已经断了(:з」∠)

  好在她发现这个 windows 命令框的字体很小,显示不太对劲。
  于是又看了一下系统的字体库。

alt

  这个系统居然只有三个字体,和左边的正常电脑查了那么多。
  于是就是安装字体的过程了。
  安装完字体还是不行的,重启了电脑之后才解决了问题。

alt

总结

  最后的解决方案其实也不是我的功劳,我当时思路已经没了,好在最后还是解决了。
  整个流程下来,感觉 Maya 排错还是可以总结出一套方法论的。
  下次遇到类似的问题就有经验了。