【问题标题】:How to generate hebrew strings in python 3?如何在 python 3 中生成希伯来语字符串?
【发布时间】:2010-08-14 12:01:20
【问题描述】:

我正在尝试创建希伯来语字符串,但出现语法错误。它在 IDLE shell 中有效,但在 Pydev 中无效。 到目前为止,这是我尝试过的:

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

我收到一个语法错误:以“\xee”开头的非 UTF-8 代码。 这是什么意思,我应该怎么做才能创建希伯来语字符串?

【问题讨论】:

  • 当你说它根本不工作,或者它只在 shell 中工作时,你在每种情况下都会遇到相同的错误吗?
  • 道歉 - 我回答了 Python 2.6,所以我删除了它。我听说一些关于 unicode 表示的问题在 Python 3 中还没有解决——在 python 2.6 中的工具链中是否同样有效?它应该。
  • @NinjaCat 在每种情况下都出现相同的错误:以 '\xee' 开头的非 UTF-8 代码
  • 当您说您使用 u"..."... 时,我有点怀疑 Python 3 中的文字已消失,请参见此处:docs.python.org/release/3.0.1/whatsnew/… 在 3.1 上,这给了我一个语法错误,所以你确定你没有使用 Python 2.6,它在 unicode 和文字方面有很大的不同。
  • 在“shell”或“c​​onsole”中键入任何非 ASCII 字符在 Windows 上非常麻烦,因此最好避免。您通常插入在您机器的系统代码页中编码的字符,该代码页依赖于语言环境,但绝不是 UTF-8。如果您有希伯来语语言环境,则您使用的是代码页 1255。您可以使用 'mbcs' 编码获取此编码(也被误导为“ANSI”代码页),仅限 Windows。

标签: python string unicode pydev hebrew


【解决方案1】:

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

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

【讨论】:

  • 谢谢。将此注释添加到源文件中有效。但我仍然有疑问: 1. 我认为解释器忽略了所有 cmets。还有其他没有被忽略的评论格式吗? 2. 即使我删除了这条评论,这件事也对我有用。我的意思是,一旦我发表评论,即使在删除评论后它也能正常工作。你能解释一下吗?
  • 我回答后就想到了,但是IIRC,Python3的默认源代码编码在Python 3下变成了UTF-8(在Python 2下是ascii),所以这个注释现在没用了。是的,所有评论但是这个被忽略了,这是一个特例(我认为唯一的一个)。所以对于 Python 3,唯一可能的问题是文件本身的编码。
猜你喜欢
  • 2012-01-12
  • 2015-07-03
  • 2011-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-22
  • 1970-01-01
相关资源
最近更新 更多