UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)

Vinay Joseph picture Vinay Joseph · Jan 28, 2014 · Viewed 68.7k times · Source

I am building a web application using Flask and Google App Engine. One of the pages in this web application makes a call via YouTube APIs to get videos given a search term.

I get the following error when I try to query YoutubeVids.html.

This only happens when when I pass a certain parameter via Jinja2 templates to the page.

file "/Users/xxxxx/App-Engine/src/templates/YoutubeVids.html", line 1, in top-level template code
    {% extends "master.html" %}
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)

INFO     2014-01-27 22:39:40,963 module.py:612] default: "GET /xxx/yyyy HTTP/1.1" 500 291

Answer

Vinay Joseph picture Vinay Joseph · Jan 31, 2014

Figured it out.

I put the following at the start of my python file

import sys
reload(sys)
sys.setdefaultencoding("utf-8")