0

少し説明しにくい質問があります。地元のコンピューター ショップの POS システムを開始するためのベースとして、devsniper のアプリケーション 'customers' をフォークしています。元のアプリケーションは MySQL を使用していますが、このアプリケーションがクライアントの元のデータを使用することが重要です。したがって、次の 2 つのオプションが提示されます。

1) SQLite データベースを 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文字に変更しただけで、すべてが金色になりました.

4

1 に答える 1

0

ええ、あなたがマイケルのペースを落としたのは正しかったです -- 本当に単純な間違いでした。uiHelpers.html には、何らかの理由で問題を引き起こしていた Unicode 文字 '»' がありました.単にそれを '>' に変更すると、ゴールデンになりました。これは、トレースバックをより注意深く読むための良い教訓でした。フィードバックに感謝します。

-タブラス

于 2013-07-03T02:09:43.310 に答える