Linux 서버에서 django에서 wsgi를 실행하는 apache2와 함께 발생하는 오류가 발생했습니다. 나는 Windows에서 개발 한 다음 Linux 서버로 복사합니다.Linux 'ascii'코덱은 문자 u ' u0161'을 위치 3에 인코딩 할 수 없습니다. 서수가 범위 내에 없습니다 (128)
나는 문제는 문자열에 참조 : (굵은 부분은 장고으로 표시됩니다)
Društvo t abornikov -로드 Srnjak LOGATEC
그러나이 오류가 한 페이지에서 발생 . 동일한 문자열이 설정 페이지에서도 사용되지만 올바르게 표시됩니다. 또한 관리자 페이지에서 같은 오류가 나타납니다. views.py 파일에서 utf-8 인코딩을 이미 설정했습니다. 내가 가진 아파치없이 서버를 시작하면 오류가 발생하지 않습니다
python3 manage.py runserver 0.0.0.0:8000
추적 :
Environment:
Request Method: GET
Request URL: https://***.***.**/vodnik/eposta/?cid=17
Django Version: 1.10.3
Python Version: 2.7.12
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'vodnik',
'schedule',
'djangobower']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Template error:
In template /var/www/etaborniki/templates/vodnik/eposta.html, error at line 59
ascii 49 : <small style="text-align: justify"><strong>Opomba:</strong> Na dno sporočila bodo avtomatsko dodani podatki roda in
50 : obrazložitev namena
51 : sporočila, ker je naša aplikacija skladna z zakonom <a href="https://www.uradni-list.si/1/content?id=111442">ZEKom-1</a>.
52 : </small>
53 : <br/>
54 : <small style="text-align: justify"><strong>Soglasje:</strong> S pritiskom na gumb pošlji se z navedenim popolnoma
55 : strinjam in prevzemam vso
56 : odgovornost. V sporočilu ne smem posredovati kakršnihkoli osebnih podatkov, sovražnega govora ali vsiljene
57 : pošte. Strinjam se, da bo moj e-naslov razviden prejemniku in družbi KSoft.Si. Sporočila se hranijo do 3 mesece.
58 : Kršitev tega soglasja ali zakonov ZEKom-1, ZEPT in ZVOP-1, se lahko sodno preganja. Za katerokoli kršitev družba
59 : KSoft.Si in {{ rod_ime }} ne odgovarjata.
60 : </small>
61 : </div>
62 :
63 : {% include 'generic/scripts.html' %}
64 : {% include 'generic/tinymce.html' %}
65 : </body>
66 : </html>
67 :
Traceback:
File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/exception.py" in inner
39. response = get_response(request)
File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/base.py" in _legacy_get_response
249. response = self._get_response(request)
File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python3.5/dist-packages/django/contrib/auth/decorators.py" in _wrapped_view
23. return view_func(request, *args, **kwargs)
File "/var/www/etaborniki/vodnik/views.py" in eposta
177. return render_to_response('vodnik/eposta.html', c)
File "/usr/local/lib/python3.5/dist-packages/django/shortcuts.py" in render_to_response
21. content = loader.render_to_string(template_name, context, using=using)
File "/usr/local/lib/python3.5/dist-packages/django/template/loader.py" in render_to_string
68. return template.render(context, request)
File "/usr/local/lib/python3.5/dist-packages/django/template/backends/django.py" in render
66. return self.template.render(context)
File "/usr/local/lib/python3.5/dist-packages/django/template/base.py" in render
208. return self._render(context)
File "/usr/local/lib/python3.5/dist-packages/django/template/base.py" in _render
199. return self.nodelist.render(context)
File "/usr/local/lib/python3.5/dist-packages/django/template/base.py" in render
994. bit = node.render_annotated(context)
File "/usr/local/lib/python3.5/dist-packages/django/template/base.py" in render_annotated
961. return self.render(context)
File "/usr/local/lib/python3.5/dist-packages/django/template/base.py" in render
1050. return render_value_in_context(output, context)
File "/usr/local/lib/python3.5/dist-packages/django/template/base.py" in render_value_in_context
1028. value = force_text(value)
File "/usr/local/lib/python3.5/dist-packages/django/utils/encoding.py" in force_text
80. s = six.text_type(bytes(s), encoding, errors)
Exception Type: UnicodeEncodeError at /vodnik/eposta/
Exception Value: 'ascii' codec can't encode character u'\u0161' in position 3: ordinal not in range(128)
python3 용 mod_wsgi를 설치했으나 (apt에서 오래된 것) 작동하지 않았습니다. 그래서 python3으로 github에서 mod_wsgi를 설치했고 제대로 작동합니다. – AndyTemple