2013-10-27 7 views
2

Я использую Google AppEngine, Python 2.7 и шаблон Jinja2. Я пробовал этот https://en.wikipedia.org/wiki/Copyleft#Symbol из Википедии. Как html он отлично печатает в моем браузере. Но когда я вставляю его в шаблон jinja2 и тестирую его в своем приложении GoogleAppEngine, он дает 500 Server Error. Вот снимок экрана трассировки стека, что я попал в бобине консоли:Как отобразить символ copyleft?

ERROR 2013-10-27 18:06:45,460 mycs253app.py:245] [] 

ERROR 2013-10-27 18:06:45,648 webapp2.py:1528] 'utf8' codec can't decode byte 0xa9 in position 1290: invalid start byte 

Traceback (most recent call last): 

    File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.3\webapp2.py", line 1511, in __call__ 

    rv = self.handle_exception(request, response, e) 

    File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.3\webapp2.py", line 1505, in __call__ 

    rv = self.router.dispatch(request, response) 

    File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.3\webapp2.py", line 1253, in default_dispatcher 

    return route.handler_adapter(request, response) 

    File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.3\webapp2.py", line 1077, in __call__ 

    return handler.dispatch() 

    File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.3\webapp2.py", line 547, in dispatch 

    return self.handle_exception(e, self.app.debug) 

    File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.3\webapp2.py", line 545, in dispatch 

    return method(*args, **kwargs) 

    File "C:\Users\duck\Documents\GitHub\mycs253app\mycs253app.py", line 294, in get 

    self.render_front_page(page_no) 

    File "C:\Users\duck\Documents\GitHub\mycs253app\mycs253app.py", line 289, in render_front_page 

    self.response.out.write(template.render(page)) 

    File "C:\Program Files (x86)\Google\google_appengine\lib\jinja2-2.6\jinja2\environment.py", line 894, in render 

    return self.environment.handle_exception(exc_info, True) 

    File "C:\Users\duck\Documents\GitHub\mycs253app\templates\main.html", line 1, in top-level template code 

    {% extends "base.html" %} 

UnicodeDecodeError: 'utf8' codec can't decode byte 0xa9 in position 1290: invalid start byte 

ERROR 2013-10-27 18:06:45,677 wsgi.py:278] 

Traceback (most recent call last): 

    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\runtime\wsgi.py", line 266, in Handle 

    result = handler(dict(self._environ), self._StartResponse) 

    File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.3\webapp2.py", line 1519, in __call__ 

    response = self._internal_error(e) 

    File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.3\webapp2.py", line 1511, in __call__ 

    rv = self.handle_exception(request, response, e) 

    File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.3\webapp2.py", line 1505, in __call__ 

    rv = self.router.dispatch(request, response) 

    File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.3\webapp2.py", line 1253, in default_dispatcher 

    return route.handler_adapter(request, response) 

    File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.3\webapp2.py", line 1077, in __call__ 

    return handler.dispatch() 

    File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.3\webapp2.py", line 547, in dispatch 

    return self.handle_exception(e, self.app.debug) 

    File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.3\webapp2.py", line 545, in dispatch 

    return method(*args, **kwargs) 

    File "C:\Users\duck\Documents\GitHub\mycs253app\mycs253app.py", line 294, in get 

    self.render_front_page(page_no) 

    File "C:\Users\duck\Documents\GitHub\mycs253app\mycs253app.py", line 289, in render_front_page 

    self.response.out.write(template.render(page)) 

    File "C:\Program Files (x86)\Google\google_appengine\lib\jinja2-2.6\jinja2\environment.py", line 894, in render 

    return self.environment.handle_exception(exc_info, True) 

    File "C:\Users\duck\Documents\GitHub\mycs253app\templates\main.html", line 1, in top-level template code 

    {% extends "base.html" %} 

UnicodeDecodeError: 'utf8' codec can't decode byte 0xa9 in position 1290: invalid start byte 

INFO  2013-10-27 23:36:45,926 module.py:608] default: "GET/HTTP/1.1" 500 - 

здесь это шаблон, который вызывает ошибку (Копилефт в конце):

<!DOCTYPE html> 
<html> 
<head> 

    <link type="text/css" rel="stylesheet" href="/css/main.css" /> 

    <title>My Blog</title> 

</head> 

<body> 

    <a href="/" class="main-title"> 
    My Blog 
    </a> 

    <div class="login-area"> 
    {% if user %} 
     <a class="login-link" href="/newpost" >newpost</a> 
     {{user.username}} (<a class="login-link" href="/logout">logout</a>) 
    {% else %} 
     <a class="login-link" href="/login">login</a> 
     | 
     <a class="login-link" href="/signup">signup</a> 
    {% endif %} 
    </div> 

    <div id="content"> 
    {% block content %} 
    {% endblock %} 
    </div> 


<!--Copyleft--> 

<div style = "color: #333; font-size: 14px" > 

<!--[if lte IE 8]><span style="filter: FlipH; -ms-filter: "FlipH"; display: inline-block;"><![endif]--> 
<span style="-moz-transform: scaleX(-1); -o-transform: scaleX(-1); -webkit-transform: scaleX(-1); transform: scaleX(-1); display: inline-block;"> 
    © 
</span> 
<!--[if lte IE 8]></span><![endif]--> 

Chintan Pokhrel 

</div> 



</body> 

</html> 

Кроме того, появляется символ? (знак вопроса), когда я пытаюсь напечатать ɔ (U + 0254), но ошибки нет.

+0

Пожалуйста, скопируйте и вставьте ошибки, не размещать фотографии там о. – tacaswell

+0

Спасибо, только что сделал – Chintan

+0

Можете ли вы обновить вопрос с помощью соответствующей части вашего шаблона? –

ответ

3

Я предлагаю заменить символ авторского права © в шаблоне с &copy;

+1

спасибо большое, это сработало !! но не может проголосовать, потому что у меня недостаточно репутации. – Chintan

0

Если вы добавили символ непосредственно в исходный код, попробуйте добавить это в первой строке вашего питона файла

# coding=utf-8 

Это говорит интерпретатор скрипт использует кодировку UTF-8.

+0

Кажется не работает. Я пробовал даже это: # - * - кодирование: utf-8 - * - Я использую jinja2 templating engine – Chintan

+0

@Chintan, но вы использовали символ copyleft внутри шаблона jinja2 или в исходном коде вашего скрипта? – OdraEncoded

+0

@Chintan Я предполагаю, что вы имеете в виду это: '# - * - кодирование: utf-8 - * -', поскольку уценка делает его немного * курсивным * :) – Lipis

1

В Юникоде есть только приближение.
Показать .png file и изменять размер с атрибутами по мере необходимости.

Смежные вопросы