【发布时间】:2010-11-23 18:49:02
【问题描述】:
我在 Windows 7 机器上使用 Python 3.1。默认系统语言为俄语,默认编码为utf-8。
看着previous question 的答案,我尝试使用“编解码器”模块来给我一点运气。举几个例子:
>>> g = codecs.open("C:\Users\Eric\Desktop\beeline.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \UXXXXXXXX escape (<pyshell#39>, line 1)
>>> g = codecs.open("C:\Users\Eric\Desktop\Site.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \UXXXXXXXX escape (<pyshell#40>, line 1)
>>> g = codecs.open("C:\Python31\Notes.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 11-12: malformed \N character escape (<pyshell#41>, line 1)
>>> g = codecs.open("C:\Users\Eric\Desktop\Site.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \UXXXXXXXX escape (<pyshell#44>, line 1)
我的最后一个想法是,我认为这可能是因为 Windows 将一些文件夹(例如“users”文件夹)“翻译”成俄语(尽管输入“users”仍然是正确的路径),所以我在 Python31 文件夹中尝试过。尽管如此,还是没有运气。有什么想法吗?
【问题讨论】:
-
@Wahnfrieden 什么? Python 2 将在未来逐步淘汰,因此使用 Python 3 是有意义的,尽管它“缺乏”“成熟度”。
-
@Beau Martinez @orip(严重)缺乏库支持对于大多数情况来说是一个足够好的理由。将 Py3k 功能向后移植到 Python 2.6 和 2.7,以后移植到 3.x 无论如何都会很容易,而且您不会牺牲大量的库支持(如果您是新用户并且可以'没有正确地预测你想要哪些库)。
-
Python 3 默认字符串文字是 unicode 字符串,因此
\u处于活动状态,因此字符串文字'\ufoo'引发SyntaxError。在 Python 2 中,默认字符串文字不是 unicode 字符串,因此\u处于非活动状态,因此字符串文字'\ufoo'不会引发任何错误。相比之下,字符串文字b'\ufoo'not 在 Python 3 中不会引发任何错误,而字符串文字u'\ufoo'does 在 Python 2 中会引发错误。
标签: python unicode python-3.x