Понимание Python Unicode и терминала Linux

У меня есть сценарий Python, который пишет некоторые строки с кодировкой UTF-8. В моем сценарии я использую в основномstr() функция для приведения к строке. Это выглядит так:

mystring="this is unicode string:"+japanesevalues[1] 
#japanesevalues is a list of unicode values, I am sure it is unicode
print mystring

Я неиспользовать терминал Python, просто стандартный терминал Linux Red Hat x86_64. Я установил терминал для вывода utf8 символов.

Если я выполню это:

#python myscript.py
this is unicode string: カラダーズ ソフィー

Но если я сделаю это:

#python myscript.py > output

Я получил типичную ошибку:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 253-254: ordinal not in range(128)

Это почему?