[問題] Python 2.7 print中文回errno 2

作者: scotie (scotie)   2020-05-04 20:31:01
最近再嚐試理解Python 2.7的編碼機制
使用下面程式碼在win 7 cmd line下測試會報錯 Errno 2 No such file or directory
不太能理解,我以為這是open file時找不到檔名的錯誤訊息,煩請高手指點一下~
# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
str_ch = '中文測試'.decode('utf-8')
print str_ch
作者: AndCycle (AndCycle)   2020-05-04 22:18:00
沒必要建議不要再研究2.7了, py2已經要死掉了
作者: TuCH (謬客)   2020-05-04 22:29:00
po一下完整的traceback
作者: OrzOGC (洞八達人.拖哨天王)   2020-05-04 22:30:00
都eol 研究身體健康的?
作者: rs6000 (正義的胖虎)   2020-05-05 07:08:00
改用3好嗎
作者: janice001 (真理)   2020-05-05 09:47:00
2020 了 還在 2.7
作者: pmove (金疾檸檬)   2020-05-05 12:05:00
用u”中文”
作者: kenduest (小州)   2020-05-05 13:12:00
No such file or directory是找不到檔案,與中文沒關係
作者: pmove (金疾檸檬)   2020-05-05 15:33:00
改用:str_ch = u'中文測試'.decode('utf-8')
作者: TakiDog (多奇狗)   2020-05-05 17:49:00
mbcs
作者: scotie (scotie)   2020-05-05 20:31:00
附上完整msg另外有在cmd下 set PYTHONIOENCODING=utf-8
作者: s860134 (s860134)   2020-05-05 21:29:00
你提供的原始碼和錯誤訊息對不起來,六行哪來 "line 18"亦或是你可以用你貼出的六行程式碼重現錯誤嗎?
作者: bibo9901 (function(){})()   2020-05-06 16:21:00
就這程度還要用python2, 那你愛怎麼折騰就怎麼折騰任何正經回答都是浪費時間
作者: rs6000 (正義的胖虎)   2020-05-06 17:32:00
推樓上。不要瞎折騰
作者: scotie (scotie)   2020-05-06 20:37:00
主要是工作環境還是用2.7所以想研究一下背後的原理,順便增加對編碼的理解。也不是說非得在2.7上實現這功能,只是Google了半天找不到解法蠻好奇root cause是什麼
作者: jasonhsu14 (小健人)   2020-05-07 10:18:00
我可以體會公司東西還用舊版的煎熬我公司還再用Excel 2003 甚至還有XP系統....
作者: AndCycle (AndCycle)   2020-05-07 11:51:00
你先要能貼對原始環境的程式跟tb再來討論
作者: kenduest (小州)   2020-05-07 12:59:00
這樣程式碼片段根本是來浪費大家時間
作者: Falldog (Yo)   2020-05-08 02:37:00
print string必需先轉成system encodingwindows中文應該是cp950吧 sys.setdefault改掉也沒用吧

Links booklink

Contact Us: admin [ a t ] ucptt.com