如何在Python中获取葡萄牙字符?
我正在处理葡萄牙语。字符看起来很奇怪。我该怎么解决这个问题呢?
代码如下:
import feedparser
import random
# Vou definir os feeds
feeds_conf = [{"feedurl": "http://pplware.sapo.pt/feed/", "linktoourpage": "http://linktopage.com/gggg/"},
{"feedurl": "http://pplware.sapo.pt/feed/", "linktoourpage": "http://linktopage.com/zzzz/"}]
# Vou escolher um feed ao acaso
feed_a_enviar = random.choice(feeds_conf)
d = feedparser.parse(feed_a_enviar["feedurl"])
i = range(10)
updates = []
for i in range(10):
updates.append([{"url": feed_a_enviar["linktoourpage"], "msg": d.entries[i].summary + ", "}])
print updates
输出结果是:
[[{'url': 'http://linktopage.com/zzzz/', 'msg': u'\u2026depois de instalar o sistema operativo? Apesar de ainda n\xe3o ser a vers\xe3o final (segundo o calend\xe1rio, est\xe1 hoje dispon\xedvel a vers\xe3o Beta), o Ubuntu 11.04 Natty Narwhal tem demonstrado ser um sistema operativo r\xe1pido, seguro e est\xe1vel segundo os testes que j\xe1 efectuamos. Com a adop\xe7\xe3o da interface Unity, parece-nos que o sistema \xe9 [...]<div style="text-align: center;"><img alt="" src="http://pplware.sapo.pt/wp-content/uploads/2011/03/ubuntu_natty_thumb.jpg" /></div>, '}], [{'url': 'http://linktopage.com/zzzz/', 'msg': u'A Google anunciou hoje que passou a permitir aos utilizadores partilharem recomenda\xe7\xf5es com os outros utilizadores nos resultados de pesquisa do Google. O objectivo \xe9 disponibilizar a cada utilizador os resultados mais relevantes, o mais r\xe1pido poss\xedvel mas, \xe0 semelhan\xe7a das palavras nas p\xe1ginas de Internet, a relev\xe2ncia assenta tamb\xe9m nas rela\xe7\xf5es. Recentemente, a Google [...]<div style="text-align: center;"><img alt="" src="http://pplware.sapo.pt/wp-content/uploads/2011/03/mais_1_2.jpg" /></div>, '}], [{'url': 'http://linktopage.com/zzzz/', 'msg': u'O Mac OS X tem uma particularidade que me agrada bastante: mostra ser um sistema operativo simples e at\xe9 despido de fun\xe7\xf5es, mas na verdade tem ferramentas que permitem nalguns cliques chegar a tudo o que precisamos. Um dos exemplos claros \xe9 o Automator. Seja l\xe1 o que for que pretende fazer neste sistema operativo, [...]<div style="text-align: center;"><img alt="" src="http://pplware.sapo.pt/wp-content/images2011/imagem_desktoday01_small.jpg" /></div>, '}], [{'url': 'http://linktopage.com/zzzz/', 'msg': u'Este artigo foi escrito pelo leitor Diogo Oliveira para o Pplware A barra de ferramentas do Windows Media Player n\xe3o \xe9 nada mais nada menos do que aquele mini-player que ficava alojado na barra de tarefas e que permite o controlo das m\xfasicas em reprodu\xe7\xe3o. Este mini-player estava presente na vers\xe3o 11, mas foi removido [...]<div style="text-align: center;"><img alt="" src="http://pplware.sapo.pt/wp-content/uploads/2011/03/wmp_12_1.jpg" /></div>, '}], [{'url': 'http://linktopage.com/zzzz/', 'msg': u'Nesta semana cinematogr\xe1fica, o destaque vai para a estreia de “Sucker Punch \u2013 Mundo Surreal”, uma fantasia \xe9pica de ac\xe7\xe3o que nos apresenta a imagina\xe7\xe3o f\xe9rtil de uma jovem, cujos sonhos s\xe3o a \xfanica sa\xedda para sua dif\xedcil realidade num hosp\xedcio. Destaque ainda para a estreia do thriller de terror “Perigo \xe0 Espreita”, com Jeffrey [...]<div style="text-align: center;"><img alt="" src="http://pplware.sapo.pt/wp-content/images2011/cinema117/imagem_cinema117_01.jpg" /></div>, '}], [{'url': 'http://linktopage.com/zzzz/', 'msg': u'Por Carlos Rodrigues e Jos\xe9 Afonso para o PPLWARE O Processing \xe9 uma linguagem baseada em Java que existe desde 2001 e \xe9 bastante utilizada por artistas gr\xe1ficos. Inicialmente utilizada para auxiliar no ensino do b\xe1sico da programa\xe7\xe3o, rapidamente cresceu, suportando diversas plataformas (Windows, Mac Os X, Linux) e permitindo desenvolver aplica\xe7\xf5es de forma muito [...]<div style="text-align: center;"><img alt="" src="http://pplware.sapo.pt/wp-content/uploads/2011/03/mobile_00_thumb.jpg" /></div>, '}], [{'url': 'http://linktopage.com/zzzz/', 'msg': u'Por SamC para o PPLWARE.COM As tags (ou metadados) contribu\xedram para que a experi\xeancia de utiliza\xe7\xe3o aumentasse bastante para quem utilizava formatos de m\xfasica digital como o MP3. Quando apareceram os primeiros leitores de MP3 recordo que era fant\xe1stico mostrar a algu\xe9m que no ecr\xe3 conseguia visualizar algumas informa\xe7\xf5es relativas \xe0 m\xfasica a ser reproduzida [...]<div style="text-align: center;"><img alt="" src="http://pplware.sapo.pt/wp-content/images2011/imagem_mptagthat01_small.jpg" /></div>, '}], [{'url': 'http://linktopage.com/zzzz/', 'msg': u'A menos de um m\xeas da disponibiliza\xe7\xe3o da vers\xe3o final do Ubuntu 11.04 Natty Narwhal (28 de Abril de 2011), s\xe3o muitas as novidades j\xe1 conhecidas. Ontem, no seguimento de um artigo que li sobre a possibilidade de testar aplica\xe7\xf5es para Android sem as instalar, decidi investigar se havia o mesmo \u201csistema\u201d para o Ubuntu. [...]<div style="text-align: center;"><img alt="" src="http://pplware.sapo.pt/wp-content/uploads/2011/03/usc_000_thumb.jpg" /></div>, '}], [{'url': 'http://linktopage.com/zzzz/', 'msg': u'Conhecer o nosso PC e o que por l\xe1 temos instalado \xe9 uma necessidade constante. Ao termos esta informa\xe7\xe3o conseguimos estar mais atentos a poss\xedveis problemas e nessas situa\xe7\xf5es conseguimos reagir de forma mais r\xe1pida e precisa. N\xe3o \xe9 no entanto simples ter acesso a toda a informa\xe7\xe3o de forma r\xe1pida e mesmo esta est\xe1 [...]<div style="text-align: center;"><img alt="" src="http://pplware.sapo.pt/wp-content/uploads/2011/03/SYS-Informer_1_small.jpg" /></div>, '}], [{'url': 'http://linktopage.com/zzzz/', 'msg': u'Num passado recente o Pplware lan\xe7ou aqui um artigo sobre as Drives SSDNow V100 da Kingston. Agora, a Kingston revela que foi descoberta uma poss\xedvel falha t\xe9cnica com as essas mesmas drives SSDNow V100. Uma pequena percentagem destas drives tem dado origem a um erro no arranque da BIOS n\xe3o permitindo que o computador inicie. [...]<div style="text-align: center;"><img alt="" src="http://pplware.sapo.pt/wp-content/uploads/2010/11/Kingston-SSDNow-V+100-e1288714523877.jpg" /></div>, '}]]
比如说,这个:
"vers\xe3o"
应该是
"versão"
我该如何让输出结果显示正确的编码呢?
1 个回答
7
答案是:“这要看你的输出要去哪里。”
feedparser
非常聪明。它已经解码了输入,并返回给你解码后的 Unicode 对象。
所以你不需要做任何事情。u"vers\xe3o"
已经是解码后的 Unicode 对象了。
你遇到的问题是,当你打印整个列表时,你看到的是列表内容的表示形式。这是 Python 显示字符串内容的一种方式。u'\xe3'
是正确的 ã
Unicode 字符的表示形式——这只是 Python 给你,程序员,展示的方式;正确的字符已经存储在 Unicode 对象里。可以把“打印表示形式”看作是调试信息;
如果你想显示真实的字符,你必须编码它,以适应输出媒介的编码。
举个例子:
如果你在网页上显示这个字符,你必须把它编码成网页的编码。如果你在终端屏幕上显示这个字符,你必须把它编码成终端的编码。
我的终端配置为使用 utf-8 编码,所以如果我执行:
print u"vers\xe3o".encode('utf-8')
这会在我的终端上打印出正确的字符。
注意,你必须编码成目标设备的编码。源头的编码已经被 feedparser
解码过了。