请使用以下代码:
#! /usr/bin/env python2.5
# -*- coding: utf-8 -*-
thing = u'\N{DEGREE SIGN}'
print thing
这将在OS X终端中运行且没有错误,但是当通过Textwrangler Python解释器运行时,它会抛出错误。但是,当我翻转前两行时,它在两个地方都运行没有错误:
# -*- coding: utf-8 -*-
#! /usr/bin/env python2.5
thing = u'\N{DEGREE SIGN}'
print thing
我的印象是shebang需要在文件的前两个字节中,所以我认为它在第二个例子中被忽略了。我进一步认为,惯例规定这是启动剧本的正确方法:
#! /usr/bin/env python2.5
# -*- coding: utf-8 -*-
但在所有情况下似乎都不是这样。
Textwrangler在这里有什么东西让我失踪吗?
[编辑]我的用例(Python 2.5)至少是导致问题的很大一部分。
[更新]以下在Terminal和TextWrangler中运行无错误:
#! /usr/bin/env python2.5
# -*- coding: utf-8 -*-
degreeSign = u'\u00B0'
degreeSign_encoded = degreeSign.encode('utf-8')
print degreeSign_encoded