import locale
prefered_encoding = locale.getpreferredencoding()
prefered_encoding 'ANSI_X3.4-1968'
मैं एक रूपरेखा inginious कहा जाता है का उपयोग कर रहा है और यह अपने टेम्पलेट रेंडर करने के लिए web.py उपयोग कर रहा है का उपयोग कर।python3 डिफ़ॉल्ट एन्कोडिंग UnicodeDecodeError ascii अपाचे WSGI
web.template.render(os.path.join(root_path, dir_path),
globals=self._template_globals,
base=layout_path)
प्रतिपादन काम करता है मेरे स्थानीय होस्ट पर लेकिन मेरे मचान सर्वर पर नहीं ।
वे दोनों python3 चलाते हैं। मुझे लगता है कि web.py लागू करता utf-8
को Python2 में एन्कोडिंग केवल (है कि मेरे हाथ से बाहर है) पर
def __str__(self):
self._prepare_body()
if PY2:
return self["__body__"].encode('utf-8')
else:
return self["__body__"]
यहाँ स्टैक ट्रेस
t = self._template(name),
File "/lib/python3.5/site-packages/web/template.py", line 1028, in _template,
self._cache[name] = self._load_template(name),
File "/lib/python3.5/site-packages/web/template.py", line 1016, in _load_template
return Template(open(path).read(), filename=path, **self._keywords)
File "/lib64/python3.5/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 83: ordinal not in range(128),
मेरे एचटीएमएल hebew वर्ण शामिल हैं , छोटे उदाहरण
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title feedback-modal-title">
חישוב האיברים הראשונים בסדרה של איבר ראשון חיובי ויחס שלילי:
<span class="red-text">אי הצלחה</span>
और मैं इसे इस तरह खोलता हूं:
open('/path/to/feedback.html').read()
और जहां रेखा एन्कोडिंग विफल होती है वह है जहां हिब्रू वर्ण हैं। centos
उपयोगकर्ता सरल ढांचे python3.5 साइट-संकुल के तहत एक pip
के रूप में स्थापित किया गया है के तहत
export PYTHONIOENCODING=utf8
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
:
मैं ~/.bashrc
में कुछ वातावरण चर की स्थापना की कोशिश की। और यह उपयोगकर्ता के तहत एक अपाचे सर्वर के द्वारा संचालित apache
(अनुप्रयोग के init के दौरान) कोड में वातावरण चर की स्थापना ताकि अपाचे WSGI उनकी जानकारी
import os
os.environ['LC_ALL'] = 'en_US.UTF-8'
os.environ['LANG'] = 'en_US.UTF-8'
os.environ['LANGUAGE'] = 'en_US.UTF-8'
मेरे पास हो जाएगा की कोशिश की संपादित /etc/httpd/conf/httpd.conf
setenv विधि का उपयोग कर:
SetEnv LC_ALL en_US.UTF-8
SetEnv LANG en_US.UTF-8
SetEnv LANGUAGE en_US.UTF-8
SetEnv PYTHONIOENCODING utf8
और sudo service httpd restart
और फिर भी प्रयास विफल का उपयोग कर पुन: प्रारंभ।
मेरा सवाल है, इसे हल करने का सबसे अच्छा अभ्यास क्या है। मैं समझता हूं कि इसके लिए हैक्स हैं, लेकिन मैं समझना चाहता हूं कि अंडरलाइन कारण क्या है और साथ ही इसे कैसे हल किया जाए।
धन्यवाद!
'ANSI_X3.4-1968' ==' ASCII'। –
आपको हमें यह दिखाने की आवश्यकता होगी कि ट्रेसबैक क्या है और इसे पुन: उत्पन्न कैसे करें। –
मैंने स्टैकट्रैक और कुछ और कोड जोड़ा है, लेकिन पुन: उत्पन्न करने के लिए, आपको सरल फ्रेमवर्क स्थापित करना होगा, जो एक मान्य सुझाव नहीं है, इसलिए मेरा सबसे अच्छा विकल्प प्रश्न का वर्णन करना है – WebQube