擅长:python、mysql、java
<p>编码的默认模式是<code>'strict'</code>,这将抛出一个错误。在</p>
<pre><code>>>> s = u"wxPython: Windows Styles and Events Hunter « The Mouse Vs. The Python"
>>> s.encode('ascii')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\xab' in position 43: ordinal not in range(128)
</code></pre>
<p>如果您的数据库只接受ASCII,那么您别无选择,只能进行有损编码。在<code>'ignore'</code>模式下,将跳过所有无法编码的字节:</p>
^{pr2}$
<p>在<code>'replace'</code>模式下,它们被替换为?字符:</p>
<pre><code> >>> s.encode('ascii', 'replace')
'wxPython: Windows Styles and Events Hunter ? The Mouse Vs. The Python'
</code></pre>
<p>最后,还有{<cd4>}:</p>
<pre><code>>>> s.encode('ascii', 'xmlcharrefreplace')
'wxPython: Windows Styles and Events Hunter &#171; The Mouse Vs. The Python'
</code></pre>