[请益] Cocos2d-x 'cp950' 编码错误问题

楼主: sck921 (The Fate)   2019-01-25 11:14:36
虽然版上 Unity 的讨论比较多,但还是 po 上来。
有关 Cocos2d-x 游戏专案要打包成 android apk 档案
在 cmd 接口下指令 cocos compile 的时候出现错误讯息:
c:\CocosTemp\test>cocos compile
Traceback (most recent call last):
File "C:\cocos2d-x-3.17.1\tools\cocos2d-console\bin\/cocos.py", line 1081,
in <module>
run_plugin(command, argv, plugins)
File "C:\cocos2d-x-3.17.1\tools\cocos2d-console\bin\/cocos.py", line 970,
in run_plugin
plugin.run(argv, dependencies_objects)
File
"C:\cocos2d-x-3.17.1\tools\cocos2d-console\plugins\plugin_compile\project_compile.py",
line 1508, in run
self.parse_args(argv)
File "C:\cocos2d-x-3.17.1\tools\cocos2d-console\bin\cocos.py", line 615, in
parse_args
self._add_custom_options(parser)
File
"C:\cocos2d-x-3.17.1\tools\cocos2d-console\plugins\plugin_compile\project_compile.py",
line 74, in _add_custom_options
help=MultiLanguage.get_string('COMPILE_ARG_BUILD_TYPE'))
File "C:\cocos2d-x-3.17.1\tools\cocos2d-console\bin\MultiLanguage.py", line
52, in get_string
fmt = cls.get_instance().get_current_string(key)
File "C:\cocos2d-x-3.17.1\tools\cocos2d-console\bin\MultiLanguage.py", line
158, in get_current_string
ret = ret.encode(self.encoding)
UnicodeEncodeError: 'cp950' codec can't encode character u'\u7f16' in
position 84: illegal multibyte sequence
用的是目前官网的 3.17.1 版本引擎,Python 是
Python 2.7 (r27:82525, Jul 4 2010, 09:01:59) [MSC v.1500 32 bit (Intel)] on
win32 版本的。
查过网络上的其它资料,有写是 UTF-8 的问题、转 CP950 的问题、Python 的问题、
cmd 的转换的问题。
目前有试过有中文的 .cpp 和 .h 存成 UTF-8 档案;
在 cmd 切换成 chcp 65001 下去 compile 还是一样的错误。
要移植到 Android Studio 好像也要透过 cmd 的指令,
现在卡在打包 apk 的问题了很头痛,官方的文件也没什么帮助....
希望有好心人能够帮忙解决,感谢!
作者: pttworld (批踢踢世界)   2019-01-25 11:29:00
把u'\u7f16'这个字符改掉呢
作者: NDark (溺于黑暗)   2019-01-25 13:17:00
你是用什么console下编译命令的我的问题是 "你是使用什么console" 来下命令的?我记得安装 cocos2d 的相关函式库会装一个console.尝试用那个比较好. cmd是windows环境.cocos2d为了平台相容性. 路径的思考模式是linux/mac base导致很多时候路径的解析,甚至中文路径会出问题.cocos2d 2.x 的时候我是用 Cygwin安装python的时候好像也会附一个console.然后 系统的环境设定要检查是否有正确增加cocos2d的路径
作者: LPH66 (-6.2598534e+18f)   2019-01-27 02:30:00
顺带提一下, u'\u7f16' (U+7f16) 是简体的 编 字你看你要不要找找是在哪里用到然后改掉“编”←在有 UAO 的 BBS 环境应该可以看到左边引号内这字
作者: husano896 (乂苍之龙)   2019-04-10 08:53:00
用py3版就不会有编码问题了

Links booklink

Contact Us: admin [ a t ] ucptt.com