2012-10-15 60 views
2

我正在試着製作一本英語 - 希伯來語詞典。
我有一個Tab格式的字典(<word>TAB<translation>)。最後 - 我希望它是以mobi格式。 我找到了從tab轉換爲opf(和htmls)的Python腳本。從那裏很容易轉換到mobi。 Python腳本名爲tab2opf.pyPython中的希伯來語unicode

當我用我的標籤(.txt)文件使用原始文件 - 一切都很好
我使用的腳本內置UTF選項:tab2opf.py -utf tab.txt

的問題是,我想要的字典我的Kindle。 Kindle向後顯示希伯來語翻譯。所以我決定編輯tab2opf文件,以便翻譯翻譯 - 並且在kindle中它會正確顯示。

我寫了下面的代碼:

def RevIt(s): 
heb = [] 
g = "" 
for i in range(len(s)): 
    c = s[i] 
    heb.append(c) 
for i in range(len(heb)): 
g += heb.pop() 
return g 

,並在tab2opf.py我行245 dd = RevIt(dd)後加入。
現在我收到的混亂:
"-բ לימלՠ£ילחתכՠ©משמהՠתՠאՠמיסՠ,)¨וביחՠמיסՠ:תכבը נסרפמאՠ,& .צעՠשՠ
對於comparsion,這是在原來的txt文件的同一行的樣子:
שם עצם. &, אמפרסנד (בכתב: סימן חיבור), סימן או תו המשמש כתחליף למילה "ו-"

我在做什麼錯?

+0

這可能會幫助一些...... http://stackoverflow.com/questions/3379589/strings-in-hebrew-in-python-for-s60 –

回答

4

您正在使用字節而不是Unicode字符。試試這個:

g = u"" 
s = s.decode('UTF-8') 
+0

S = g.decode?或者你真的是指s? –

+0

@JoranBeasley,是的,我的意思是's'。我假設輸入字符串是原始字節,需要解碼爲Unicode字符。你可以輕鬆地顛倒這兩條線。 –

+0

現在我得到一個錯誤'「」「%(dt,dtstrip,dd)) UnicodeDecodeError:'ascii'編解碼器無法解碼位置80中的字節0xef:序號不在範圍內(128) txt文件已經utf-8,BTW。 – HaReL