擅长:python、mysql、java
<p>尝试使用<a href="http://code.google.com/p/pyodbc/wiki/Module#connect" rel="nofollow noreferrer">pyodbc.connect()</a>参数<code>convert_unicode=True</code>连接到数据库,例如从sqlalchemy:</p>
<pre><code>engine = create_engine('mssql://yourdb', connect_args={'convert_unicode': True})
</code></pre>
<p>这应该确保您得到的所有结果(而不仅仅是来自<code>nvarchar</code>等的结果)都是unicode,正确地从数据库中使用的任何编码转换而来。</p>
<p>至于写入数据库,请始终使用unicode。如果我没有弄错(稍后会检查),pyodbc将确保它也能正确地写入数据库。</p>
<p>(当然,如果数据库使用的编码不支持要写入的字符,则仍然会出现错误:如果希望列支持任何类型的字符,则还必须在数据库上使用unicode列)</p>