如果我的默认python编码器和系统是UTF-8,我如何得到这个错误;ascii';编解码器可以';t编码字符'\u0447';
从如果我的默认python编码器和系统是UTF-8,我如何得到这个错误;ascii';编解码器可以';t编码字符'\u0447';,python,jenkins,unicode,Python,Jenkins,Unicode,从jenkins- 正如我已经更改了python的默认编码一样,它从哪里接受编码器-ascii,jenkins主进程和从进程以及系统 甚至在脚本开始时添加了#编码:utf-8,但没有起作用 这不仅仅是在控制台中打印字符串,我的代码尝试访问一些文件,并且文件路径包含一些俄语字符,所以一切都失败了 当我从linux控制台手动运行相同的脚本时,一切都正常 你知道这里的解决方案是什么吗?与人们普遍认为的相反,Python 3中内置的open()函数以及sys.std*流(print()使用sys.std
jenkins
-
正如我已经更改了python的默认编码一样,它从哪里接受编码器-ascii,jenkins
主进程和从进程以及系统
甚至在脚本开始时添加了#编码:utf-8
,但没有起作用
这不仅仅是在控制台中打印字符串,我的代码尝试访问一些文件,并且文件路径包含一些俄语字符,所以一切都失败了
当我从linux控制台手动运行相同的脚本时,一切都正常
你知道这里的解决方案是什么吗?与人们普遍认为的相反,Python 3中内置的
open()
函数以及sys.std*
流(print()
使用sys.stdout
)的默认编码并不总是UTF-8。它可能在一台机器上,但不是在另一台机器上,因为它依赖于平台
从系统stdin/stdout/stderr的
这些流是常规文本文件,类似于open()函数返回的文本文件。其参数选择如下:
- 字符编码依赖于平台。非Windows平台使用区域设置编码[…]
对于使用
open
打开的文件,您可以通过显式设置encoding=
参数轻松获得控制权。这是什么版本的Python,以及msg
来自哪里?
File "/export/app-33-1/jenkins/w/ee4a092a/install/src/linux-amd64-gcc_4_4-release/bin/eat2/eat.py", line 553, in _runtest
print('ERROR:' + msg)
UnicodeEncodeError: 'ascii' codec can't encode character '\u0447' in position 315:
ordinal not in range(128)