python - Pythonでユニコード文字のリストをヘブライ文字列に変換する

原文 python unicode html-parsing

thisスレッドソリューションに従って、それぞれが次のようなリストの束を取得することができました。


[u '\ u05ea \ u05d0 \ u05de \ u05d9 \ u05df \ u05dc \ u05d9']


それらはユニコード文字であると思いますが、何らかの理由で、それらをヘブライ語に戻すことができません。

リンクのコメントで提案された解決策を試しました。私も''.joinを使用しようとしましたが、うまくいきませんでした。私が得るエラーは:


エラータイプ:exceptions.UnicodeEncodeError 22:42:15 T:2806414192
M:2425589760エラー:エラーの内容: 'ascii'コーデックはエンコードできません
位置0-4の文字:序数が範囲内にありません(128)


ものをunicode()でラップしようとしましたが、取得したのは上記の例と同じです。

どうすればそれを達成できますか?

注意:
this linkを解析しようとしています。

編集:
joinを使用してリストを文字列に変換してから印刷しようとしています。関連するコードを以下に示します。

soup = BeautifulStoneSoup(link, convertEntities=BeautifulStoneSoup.XML_ENTITIES)
    programs = soup('ul')
    for i,prog in enumerate(programs):
        if i==(4+getLetterValue(name)):
            j = 0
            while j < len(prog('li')):
                li = prog('li')[j]
        link = li('a')[0]
        url = link['href']
                text = link.contents
                print ''.join(text)


linkは文字列です。 getLetterValue(name)は、htmlドキュメント内の位置を示す整数を返します。
答え
これはunicode文字列で、ヘブライ語で記述されており、Pythonインタラクティブシェルで直接印刷することもできます。例えば。:

>>> print u'\u05ea\u05d0\u05de\u05d9\u05df \u05dc\u05d9'
תאמין לי


なんらかの理由で本当にバイトの生の文字列(strオブジェクト)に変換する必要がある場合、テキストは多くの異なるエンコーディングで表現できるため、バイト文字列のエンコーディングを指定する必要があります。

短い答え:テキストをエンコードするためにUTF-8を使用したい場合、以下を使用できます。

your_unicode_text.encode('utf-8')


別のエンコーディングを使用する場合は、上記のエンコーディング名を変更してください。

PythonがUnicodeテキストと一般的な問題を処理する方法のリファレンスについては、http://docs.python.org/howto/unicode.htmlを参照してください。

Unicodeと文字列エンコーディングの別の簡単な説明については、this answerも参照してください。
関連記事

python - Python executorの作成に関する問題

python - 孫ではなく子供のCPU使用率を測定する

python - 極座標プロットのエラーバーがmatplotlibの角度で回転しません

python - ユーザー定義クラスに異なる名前を使用すると、2つのPythonスクリプトの動作が異なる

python - python +セキュリティ

python - エキスパンダーラベルのPangoマークアップ

python - インポートされたメソッドにローカル変数を使用させる

python - AppEngine Task Queue API呼び出しがTaskAlreadyExistsErrorで増加する

python - Pyramid 1.1とMongodbを統合する方法-できるだけ少ない行

python - 出力されたpy2exe exeは署名された場合にのみ実行されません:ImportError