-2

ここに私のコードがあります:

# -*- coding: utf-8-*-
array=["à","á","â","ã","ä","å","æ","ç","è","é","ê","ë","ì","í","î","ï","ð","ñ","ó","ô","õ","ö","ø","ù","ú","û","ü","ý","þ","ÿ"]
array1=["א","ב","ג","ד","ה","ו","ז","ח","ט","י","ך","כ","ל","ם","מ","ן","נ","ס","ע","ף","פ","ץ","צ","ק","ר","ש","ת"]
str="áï éäåãä"
message=""
for i in range(0,len(str)):
   s=str[i]
   index=-1
   for j in range(0,len(array)):
       if(array[j]==s):
           index=j
           break
   if(index!=-1):
   message+=array1[index]
   print array1[index]
print message

エラーは次のとおりです。

SyntaxError: EOL while scanning string literal

2行目

ヘブライ語のテキスト ファイルがありますが、エンコーディングに関係なく、常に意味不明な文字で表示されます。これはヘブライ語に変換する Python プログラムです。元のファイルは IS0-8859-1 にあります

4

2 に答える 2

4

@Martijnが示唆するように、元のファイルを正しくデコードすることはより良い解決策です。ファイルがヘブライ語であるのにarray文字が表示される場合は、latin1またはcp1252エンコーディングとして表示されている可能性があります。 cp1255近い試合のように見えます。おそらく、あなたarray1は完全に正しくありません。また、文字列は反復可能であるため、配列を単純化できることに注意してください。

# coding: utf8
array  = u'àáâãäåæçèéêëìíîïðñóôõöøùúûüýþÿ'
array1 = u'אבגדהוזחטיךכלםמןנסעףפץצקרשת'
print(array)
print(array1)
print(array.encode('cp1252').decode('cp1255',errors='replace'))

上記の最後の行は、「正しくない」エンコーディングを逆にして、cp1255代わりに (ヘブライ語エンコーディング) でデコードします。出力:

àáâãäåæçèéêëìíîïðñóôõöøùúûüýþÿ
אבגדהוזחטיךכלםמןנסעףפץצקרשת
אבגדהוזחטיךכלםמןנסףפץצרשת��‎‏�

完全に一致するわけではありませんが、元のファイルがcp1255.

于 2013-08-18T02:36:04.683 に答える