2010-08-14 54 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

相關問題