Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python UnicodeEncodeError:&x27;ascii';编解码器可以';在特殊名称处对字符进行编码_Python_Unicode_Encoding_Beautifulsoup_Ascii - Fatal编程技术网

Python UnicodeEncodeError:&x27;ascii';编解码器可以';在特殊名称处对字符进行编码

Python UnicodeEncodeError:&x27;ascii';编解码器可以';在特殊名称处对字符进行编码,python,unicode,encoding,beautifulsoup,ascii,Python,Unicode,Encoding,Beautifulsoup,Ascii,我的python(2.7版)脚本运行良好,可以从本地html文件中获取一些公司名称,但当涉及到某些特定的国家名称时,它会出现以下错误“UnicodeEncodeError:'ascii'编解码器无法对字符进行编码” 当该公司名称出现时,会出现特殊错误 公司名称:Kühlfix Kälteanlagen Ing.Gerhard Doczekal&Co.KG 无法处理该链接 Traceback (most recent call last): File "C:\Python27\Process

我的python(2.7版)脚本运行良好,可以从本地html文件中获取一些公司名称,但当涉及到某些特定的国家名称时,它会出现以下错误“UnicodeEncodeError:'ascii'编解码器无法对字符进行编码”

当该公司名称出现时,会出现特殊错误

公司名称:Kühlfix Kälteanlagen Ing.Gerhard Doczekal&Co.KG

无法处理该链接

Traceback (most recent call last): 
  File "C:\Python27\Process2.py", line 261, in <module>
    flog.write("\nCompany Name: "+str(pCompanyName))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 9: ordinal not in range(128)

尝试在脚本开头将系统默认编码设置为
utf-8
,以便所有字符串都使用该编码

范例-

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

上面应该将默认编码设置为
utf-8

您真的想这样做吗

flog.write("\nCompany Name: "+ pCompanyName.encode('utf-8'))

这就是本文(幻灯片32至35)中所述的“晚编码”策略。

阅读任何到这里来的人都应该访问,并且,如果不是总是一个非常糟糕的主意,那么按照公认的建议进行操作通常是一个非常坏的主意。无论您在哪里写入文件或读取文件,都必须添加编码。打开(“filename”,“w”,encoding=”UTF-8“)现在我面临另一个错误bro!Traceback(最近一次调用最后一次):文件“C:\Python27\Process2.py”,第261行,打印“Company Name:”+hit.text文件“C:\Python27\lib\encodings\cp437.py”,第12行,在encode return codecdes.charmap\u encode(输入,错误,encoding\u map)UnicodeEncodeError:“charmap”编解码器无法对位置28中的字符u'\xae'进行编码:字符映射到此位置适用于Python 2.x,但这不是一种很好的方法,在Python 3中已被弃用。最好实际正确地解码/编码数据。请参阅@MartyMacyver上的讨论,完全正确,这可能会破坏库并导致难以理解查找bug。甚至没有提到这一点,这使得这是一个非常危险的答案。这不起作用:
模块“sys”没有属性“setdefaultencoding”
使用
导出PYTHONIOENCODING=UTF-8
对meThis有效这是正确的方法,应该是公认的答案。正确的方法-正确的答案
flog.write("\nCompany Name: "+ pCompanyName.encode('utf-8'))