Есть одна вредная консольная программа программа, которая работает через subprocess.Popen
Результат в stdout имеет странный вид: с одной стороны это юникод с кириллическими символоми вида \u0424, с другой стороны type() говорит что это обычная (не юникод) строка. В соответствии с этим encode сроку не меняет. Выглядет это так:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import subprocess
proc = subprocess.Popen("google picasa list-albums --fields title",shell=True, stdout = subprocess.PIPE, stdin = subprocess.PIPE, stderr = subprocess.PIPE)
out,err = proc.communicate()
print "Содержимое строки:", out[0:50]
print "Это не юникод!", type(out)
print "Не работатет (((", out[0:50].encode("utf-8")
$ ./test
Содержимое строки: Mars
\u0424\u0435\u043e\u0434\u043e\u0441\u0438\u0
Это не юникод! <type 'str'>
Не работатет ((( Mars
\u0424\u0435\u043e\u0434\u043e\u0441\u0438\u0
Заранее спс.
P.S. ось линукс, кодировка консоли utf-8