环境
centos7
python2.7和python3.6
测试代码
# -*- coding: UTF-8 -*-
from datetime import datetime
print(u"wwww")
print("目录存在: " + str(33))
print(u"为什么不行啊: ")
print u"dddd"
if __name__ == '__main__':
current_time = datetime.now().strftime("%Y%m%d%H%M%S")
ymd = current_time[0:8]
day = current_time[6:8]
hour = current_time[8:10]
print("当前系统时间: " + current_time)
python2直接运行,正常
python3直接运行,print得加括号才能运行
删除print u"dddd"后,python3正常运行
带nohup挂起运行时出现编码错误
nohup python2
但是前面print("目录存在: " + str(33)),不带u在前面就能正常运行,按理说带u是对字符串进行unicode编码,习惯中文都带u来print的,结果到这就不行了,很奇怪!
nohup python3
但是用python3来运行又是正常的
后来查到说要在python运行前加上
import sys
reload(sys)
sys.setdefaultencoding(‘utf-8’)
确实可以正常运行,但是明明文件头前面标注了# -- coding: UTF-8 --
后来又找到一种方法
在执行命令时加上 PYTHONIOENCODING=utf-8 在前面
这样就不用在代码中加入那三行sys代码了(因为本来不加也能正常运行的,不知道nohup啥问题)