import locale
prefered_encoding = locale.getpreferredencoding()
prefered_encoding 'ANSI_X3.4-1968'
아파치 WSGI를 사용하여 UnicodeDecodeError 아스키. 내 로컬 호스트에python3 기본 인코딩 내가 <a href="http://inginious.readthedocs.io" rel="noreferrer">inginious</a>라는 프레임 워크를 사용하고 있는데 그 템플릿을 렌더링하는 <a href="http://webpy.org/" rel="noreferrer">web.py</a>을 사용하고
web.template.render(os.path.join(root_path, dir_path),
globals=self._template_globals,
base=layout_path)
렌더링 작동하지만 내 준비 서버에 없습니다.
둘 다 python3을 실행합니다. 여기
def __str__(self):
self._prepare_body()
if PY2:
return self["__body__"].encode('utf-8')
else:
return self["__body__"]
이 hebew 문자를 포함 할 스택 추적 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),
내 HTML입니다 utf-8
Python2의 인코딩에만 (즉 내 손에서의)
에 web.py가 시행 볼 작은 예제<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()
그리고 인코딩이 실패한 행은 히브리어 문자가있는 곳입니다.
export PYTHONIOENCODING=utf8
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
독창적 인 프레임 워크는 python3.5 사이트 - 패키지 아래 pip
로 설치 한 사용자 centos
아래 :
나는~/.bashrc
일부 환경 변수를 설정했습니다. 그리고 그것은 사용자로 아파치 서버에서 제공 apache
아파치 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'
내가 가진 그들의 인식 될 수 있도록 (응용 프로그램의 초기화시) 코드에서 환경 변수를 설정 시도 setenv 방법을 사용하여 /etc/httpd/conf/httpd.conf
편집 :
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
과 행운을 사용하여 다시 시작됩니다.
제 질문은이 문제를 해결하는 가장 좋은 방법입니다. 이 문제에 대한 해킹이 있다는 것을 알고 있지만 밑줄이 무엇인지 이해하고 문제를 해결하는 방법을 알고 싶습니다.
감사합니다.
import codecs
with codecs.open(file_path,'r',encoding='utf8') as f:
text = f.read()
에
open('/path/to/feedback.html').read()
변경 파일 을 읽을 때
'ANSI_X3.4-1968' =='ASCII'. –
추적 표시가 무엇이고 복제하는 방법을 정확히 보여줘야합니다. –
stacktrace와 몇 가지 코드를 추가했습니다.하지만 재현하려면 유효한 제안이 아닌 독창적 인 프레임 워크를 설치해야합니다. 따라서 가장 좋은 옵션은 질문을 잘 설명하는 것입니다. – WebQube