擅长:python、mysql、java
<p>当使用<em>二进制排序规则</em>定义各个列时,MySQL连接器将字符串(使用<code>CHAR</code>、<code>VARCHAR</code>和<code>TEXT</code>数据类型存储)返回为<code>bytearray</code>(例如<code>utf8_bin</code>)。必须对值调用<code>.decode()</code>,才能获取Python字符串,例如:</p>
<pre><code>for row in cursor:
caption = row[0].decode()
</code></pre>
<p>也就是说,除非您有使用<code>utf8_bin</code>的特定要求,否则最好在数据库级别使用带排序规则的<code>utf8mb4_unicode_ci</code>字符集。这将解决您的问题,并允许完全的Unicode支持。有关详细信息,请参见<a href="https://stackoverflow.com/a/25475756/244297">this</a>和<a href="https://stackoverflow.com/q/30074492/244297">this</a>。</p>