擅长:python、mysql、java
<p>如果您获得的字符串是网站抓取的结果,则表明您获取的字符串的编码设置不正确。在</p>
<p>站点通常会指定<code>charset=utf-8</code>,然后将站点的内容放在其他字符集中(尤其是<code>windows-1252</code>),反之亦然。对于这种现象(也称为<a href="https://en.wikipedia.org/wiki/Mojibake" rel="nofollow">mojibake</a>),没有简单、通用的解决方法。在</p>
<p>您可能需要尝试使用不同的抓取库大多数都有一些识别和处理这种情况的策略,但是它们在不同的场景中有不同的成功率。如果您使用的是beauthoulsoup,那么您可能需要对<code>chardet</code>后端使用不同的参数。在</p>
<p>当然,如果您只关心正确地抓取一个站点,您可以硬编码该站点声明的字符编码的覆盖。在</p>
<p>你这样的问题没什么意义。你到底想达到什么目的还不清楚。<code>u'Chicken and sauted potatoes'</code>并不比<code>u'Chicken and sautéed potatoes'</code>更正确,也只是稍微不那么吸引人(而且在某些方面更不吸引人,因为你无法判断是否有人试图使它正确,尽管它没有被恰当地执行)。在</p>
<p>如果由于将Unicode输入到使用ASCII编码的文件句柄而出现编码错误,正确的解决方案是在打开文件进行写入时指定ASCII以外的编码(通常是UTF-8)。在</p>