我对the script from this answer进行了一些调整。我有unicode的问题。有些问题最终写得不好。
一些答案和回答最终看起来像:
Yeah.. I know.. I’m a simpleton.. So what’s a Singleton? (2)
如何将’
翻译成正确的角色?
注意:如果重要的话,我在法语窗口上使用python 2.6。
>>> sys.getdefaultencoding()
'ascii'
>>> sys.getfilesystemencoding()
'mbcs'
EDIT1:根据Ryan Ginstrom的帖子,我已经能够纠正部分输出,但我遇到了python的unicode问题。
在Idle / python shell中:
是的..我知道..我是一个傻瓜......所以 什么是单身人士?
在文本文件中,重定向stdout时
是啊..我知道..我是一个傻瓜......所以 什么是单身人士?
我该如何纠正?
Edit2:我尝试过Jarret Hardie的解决方案,但它没有做任何事情。 我在Windows上,使用python 2.6,所以我的site-packages文件夹位于:
C:\ Python26 \ LIB \站点包
没有siteconfig.py文件,所以我创建了一个,粘贴了Jarret Hardie提供的代码,启动了一个python解释器,但似乎还没有加载。
sys.getdefaultencoding() 'ASCII'
我注意到有一个site.py文件:
C:\ Python26 \ LIB \ site.py
我尝试更改函数
中的编码def setencoding():
"""Set the string encoding used by the Unicode implementation. The
default is 'ascii', but if you're willing to experiment, you can
change this."""
encoding = "ascii" # Default value set by _PyUnicode_Init()
if 0:
# Enable to support locale aware default string encodings.
import locale
loc = locale.getdefaultlocale()
if loc[1]:
encoding = loc[1]
if 0:
# Enable to switch off string to Unicode coercion and implicit
# Unicode to string conversion.
encoding = "undefined"
if encoding != "ascii":
# On Non-Unicode builds this will raise an AttributeError...
sys.setdefaultencoding(encoding) # Needs Python Unicode build !
将编码设置为utf-8。它工作(当然重启python之后)。
>>> sys.getdefaultencoding()
'utf-8'
令人遗憾的是,它没有纠正我程序中的字符。 :(
答案 0 :(得分:1)
您应该能够将HTMl / XML实体转换为Unicode字符。在SO中查看这个答案:
Decoding HTML Entities With Python
基本上你想要这样的东西:
from BeautifulSoup import BeautifulStoneSoup
soup = BeautifulStoneSoup(urllib2.urlopen(URL),
convertEntities=BeautifulStoneSoup.ALL_ENTITIES)
答案 1 :(得分:0)
更改siteconfig.py中的默认编码是否有效?
在您的站点包文件中(在我的OS X系统上,它位于/Library/Python/2.5/site-packages/
)中创建一个名为siteconfig.py
的文件。在这个文件中:
import sys
sys.setdefaultencoding('utf-8')
处理完siteconfig.py后,会从sys模块中删除setdefaultencoding方法,因此必须将其放在site-packages中,以便Python在解释器启动时读取它。