वहाँ इसे बदलने के लिए दो तरीके हैं:
1) (लिनक्स केवल) export LC_CTYPE=en_US.UTF8
अजगर शुरू करने से पहले:
$ LC_CTYPE=C python -c 'import sys; print(sys.getfilesystemencoding())'
ANSI_X3.4-1968
$ LC_CTYPE=C.UTF-8 python -c 'import sys; print(sys.getfilesystemencoding())'
UTF-8
ध्यान दें कि LANG LC_CTYPE के लिए डिफ़ॉल्ट मान के रूप में कार्य करता है, तो यह नहीं है सेट, LC_ALL दोनों LC_CTYPE और LANG)
2) monkeypatching ओवरराइड करता है, जबकि:
import sys
sys.getfilesystemencoding = lambda: 'UTF-8'
दोनों विधियां os.stat
जैसे कार्यों को यूनिकोड (python2.x) स्ट्रिंग स्वीकार करते हैं। अन्यथा वे कार्य एक अपवाद उठाते हैं जब वे फ़ाइल नाम में गैर-असीसी प्रतीकों को देखते हैं।
स्रोत
2015-07-31 20:13:47
विधि 1 काम नहीं कर रहा है या मुझे – sureshvv
@sureshvv आपका ओएस क्या है? –
उबंटू 16.04। LANG = en_US.UTF8 को/etc/वातावरण में जोड़ना और रीबूट करना था। – sureshvv