기본적으로 http://www.python.org/dev/peps/pep-0263/ 를 참고할 것.

윈도우에서 파이선 실행시 cp-949( http://ko.wikipedia.org/wiki/UHC )로 한글을 읽는 관계로 글자가 깨진다.

>>> list=[‘학교식당’, ‘부대찌개’, ‘순대국’, ‘해장국’, ‘떡볶이’]
>>> list[0]
‘xc7xd0xb1xb3xbdxc4xb4xe7’

1. py 파일로 실행시 utf-8로 저장한다.
2. 첫째, 혹은 두번째 줄에 다음과 같이 인코딩을 지정한다.
# -*- coding:utf-8 -*-

http://kldp.org/node/81708 에서는write() 메쏘드를 가진 클래스를 만들고 sys.stdout 을 이 클래스의 오브젝트로 대치하는 방식을 언급하였다.

참고 

#!/usr/bin/python
#-*- coding: utf-8 -*-
import sys
class Encode:
    def __init__(self, stdout, enc):
        self.stdout = stdout
        self.encoding = enc
    def write(self, s):
        self.stdout.write(s.encode(self.encoding))

sys.stdout = Encode(sys.stdout, 'cp949')

u = u'안녕하세요'
s = 'hello'
n = 124
print s, u, n

한글 문제를 IDLE 에서 실행할 때를 테스트해보면 다음과 같다.

>>> t1="안녕하세요"
>>> t2=u'안녕하세요'
>>> t3=unicode("안녕하세요", "cp949")
>>> t4='안녕하세요'
>>> t5="안녕하세요".decode("mbcs").encode("utf8")
>>> t1
'xbexc8xb3xe7xc7xcfxbcxbcxbfxe4'
>>> t2
u'xbexc8xb3xe7xc7xcfxbcxbcxbfxe4'
>>> t3
u'uc548ub155ud558uc138uc694'
>>> t4
'xbexc8xb3xe7xc7xcfxbcxbcxbfxe4'
>>> t5
'xecx95x88xebx85x95xedx95x98xecx84xb8xecx9ax94'
>>> print t1
안녕하세요
>>> print t2
¾È³çÇϼ¼¿ä
>>> print t3
안녕하세요
>>> print t4
안녕하세요
>>> print t5
안녕하세요