나는 약간 설명하기 어려운 질문이 있습니다. 나는 지역 컴퓨터 상점을위한 POS 시스템을 시작하기 위해 devsniper의 애플리케이션 '고객'을 기반으로 삼고 있습니다. 원래 응용 프로그램은 MySQL을 사용하지만이 응용 프로그램이 내 클라이언트의 원래 데이터를 사용하는 것이 중요합니다. 그래서 두 가지 옵션이 제공하고있다 : 나는에 SQLite 데이터베이스를 마이그레이션 할 수 있습니다MySQL을 사용하여 SQLite DB를 사용하는 forked Pyramid 응용 프로그램 수정 - 유니 코드 디코드 오류
1) MySQL의 DB
2) 시도 때마다 나는, 그러나)
를 SQLite는 DB (기본 설정을 사용하는 프로그램을 수정할 수 있습니다
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 0: ordinal not in range(128)
나는이 문제의 원인이 무엇 정확하게 에서 많은 세부 사항이 아니므로, 내 문제를 디테일 어디서부터 시작해야합니다 그러나하지 않다 : 고객의 페이지를 끌어, 나는 다음을 얻을 추적 표시로 시작합니다.
Traceback (most recent call last):
File "/home/tabras/posenv/local/lib/python2.7/site-packages/pyramid-1.4.2-py2.7.egg/pyramid/mako_templating.py", line 232, in __call__
result = template.render_unicode(**system)
File "/home/tabras/posenv/local/lib/python2.7/site-packages/Mako-0.8.1-py2.7.egg/mako/template.py", line 452, in render_unicode
as_unicode=True)
File "/home/tabras/posenv/local/lib/python2.7/site-packages/Mako-0.8.1-py2.7.egg/mako/runtime.py", line 783, in _render
**_kwargs_for_callable(callable_, data))
File "/home/tabras/posenv/local/lib/python2.7/site-packages/Mako-0.8.1-py2.7.egg/mako/runtime.py", line 815, in _render_context
_exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
File "/home/tabras/posenv/local/lib/python2.7/site-packages/Mako-0.8.1-py2.7.egg/mako/runtime.py", line 841, in _exec_template
callable_(context, *args, **kwargs)
File "/home/tabras/posenv/customers/customers/templates/base/index.html", line 102, in render_body
${next.body()}
File "/home/tabras/posenv/customers/customers/templates/customer/list.html", line 19, in render_body
<%include file="listPartial.html"/>
File "/home/tabras/posenv/local/lib/python2.7/site-packages/Mako-0.8.1-py2.7.egg/mako/runtime.py", line 710, in _include_file
callable_(ctx, **_kwargs_for_include(callable_, context._data, **kwargs))
File "/home/tabras/posenv/customers/customers/templates/customer/listPartial.html", line 50, in render_body
${pager(customers)}
File "/home/tabras/posenv/customers/customers/templates/base/uiHelpers.html", line 10, in render_pager
${items.pager(format="$link_previous ~2~ $link_next",
File "/home/tabras/posenv/local/lib/python2.7/site-packages/WebHelpers-1.3-py2.7.egg/webhelpers/paginate.py", line 716, in pager
self._pagerlink(self.next_page, symbol_next) or ''
File "/home/tabras/posenv/local/lib/python2.7/site-packages/WebHelpers-1.3-py2.7.egg/webhelpers/paginate.py", line 855, in _pagerlink
return HTML.a(text, href=link_url, onclick=onclick_action, **self.link_attr)
File "/home/tabras/posenv/local/lib/python2.7/site-packages/WebHelpers-1.3-py2.7.egg/webhelpers/html/builder.py", line 213, in __call__
return make_tag(self._tag, *args, **kw)
File "/home/tabras/posenv/local/lib/python2.7/site-packages/WebHelpers-1.3-py2.7.egg/webhelpers/html/builder.py", line 308, in make_tag
chunks.extend(escape(x) for x in args)
File "/home/tabras/posenv/local/lib/python2.7/site-packages/WebHelpers-1.3-py2.7.egg/webhelpers/html/builder.py", line 308, in <genexpr>
chunks.extend(escape(x) for x in args)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 0: ordinal not in range(128)
포스트 솔루션 편집 : 어떤 이유
${items.pager(format="$link_previous ~2~ $link_next",
symbol_previous="«",
symbol_next="»",
link_attr=link_attr,
curpage_attr=curpage_attr,
dotdot_attr=dotdot_attr,
onclick="$('.list-partial').load('%s'); return false;")}
'»'문자와 대응 오류를 던져주고 있었다 :
문제는 여기에 있었다. 간단히 표준 ASCII 문자로 변경했으며 모든 것이 황금이었습니다.
나는 당신이 천천히하고 예외의 원인을 파악해야한다고 생각합니다. uiHelpers.html에서'items.pager'를 호출하고 문자열을 유니 코드로 변환 할 수 없습니다. 이것은 webhelpers의 버그 일 가능성이 높지만 코드의 값을 살펴 보는 것이 의미가 있습니다 (유니 코드). –