2011-08-29 50 views
2

this线程解决方案,我已经成功地得到了一组列出了每个看起来像:转换Unicode字符的列表为希伯来文字符串在python

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

我认为那些都是Unicode字符,但对于某些原因,我不能将它们转换回希伯来语。

我在链接的评论中尝试了建议的解决方案。我也尝试使用''.join,但它没有奏效。我得到的错误是:

Error Type: exceptions.UnicodeEncodeError 22:42:15 T:2806414192
M:2425589760 ERROR: Error Contents: 'ascii' codec can't encode
characters in position 0-4: ordinal not in range(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文档中的位置是什么。

+1

你的意思是“将它们转换回希伯来语”。例如。想要将它们写入utf-8编码文件? – bpgergo

+1

已经*是该列表中的一个unicode字符串,因此是'u'...'。请详细说明“将它们还原为希伯来语”的含义。 –

+0

你可以发布你想要做的一些代码吗?分配列表上方的变量并打印它给תאמיןלי它看起来像希伯莱我... –

回答

2

这是一个unicode字符串,它的在希伯来语,你甚至可以直接在Python交互式shell上打印它。例如:

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

如果你真的需要将其转换为某种原因字节(str对象)的原始字符串,你必须指定字节串的编码因为文字可以代表了许多不同的编码。

简短的回答:假设你想使用UTF-8的文本进行编码,可以使用:

your_unicode_text.encode('utf-8') 

如果你要使用不同的编码,只需更改上面的编码名称。

有关使用Unicode文本和常见问题的Python如何处理,请参考:http://docs.python.org/howto/unicode.html

this answer见Unicode和字符串编码的另一个简短的说明。

相关问题