2010-08-14 58 views
2

我想创建希伯来字符串,但得到语法错误。它在IDLE shell中工作,但不在Pydev中。 这是我到目前为止已经试过:如何在python 3中生成希伯来字符串?

s = 'מחרוזת בעברית' #works in the shell only 
s = u'מחרוזת בעברית' #doesn't work at all 
s = unicode("מחרוזת בעברית", "UTF-8") #also doesn't work at all 

我得到一个语法错误:非UTF-8编码以“\ XEE”。 这是什么意思,我该怎么做来创建希伯来字符串?

+0

当你说它根本不起作用,或者它只在shell中工作时,你是否在每种情况下都得到相同的错误? – NinjaCat 2010-08-14 12:12:27

+0

道歉 - 我为Python 2.6回答,所以我删除了它。我听说Python 3中尚未解决unicode表示的一些问题 - 在Python 2.6中的工具链中执行相同的工作吗?这应该。 – chryss 2010-08-14 12:13:35

+0

@NinjaCat在每种情况下都有同样的错误:以'\ xee'开头的非UTF-8代码 – snakile 2010-08-14 12:18:43

回答

6

您的源文件是否以# -*- coding: utf-8 -*-行开头?你的文件是否实际编码为utf-8(而不是其他编码)?

它应该工作(第一行,其他行不是有效的Python 3)。

+0

谢谢。将此注释添加到工作的源文件中。但我仍然有疑问: 1.我认为翻译忽略了所有评论。是否有其他评论格式不被忽略? 2.即使删除了此评论,我仍然为之工作。我的意思是,一旦我发表评论,它甚至在删除评论后仍然有效。你能解释一下吗? – snakile 2010-08-14 12:37:31

+1

我在回答之后想到了它,但是IIRC,Python3的默认源代码编码在Python 3变成了UTF-8(在Python 2下,它是ascii),所以这个评论现在没用了。是的,所有评论*,但这一个被忽略,这是一个特殊情况(我认为唯一的情况)。 因此对于Python 3来说,唯一可能的问题是编码文件本身。 – 2010-08-14 12:42:04

相关问题