擅长:python、mysql、java
<p><strong>原始评论变成了答案:</strong></p>
<p>cp1250和cp1252不是“拉丁编码”。排序规则不是编码。回复:谁说“服务器是用拉丁语编码的”?如果服务器希望所有输入/输出都用拉丁语1编码(我对此表示怀疑),那么您就很难将一些东欧字符输入到数据库中(俄语、汉语、希腊语等)。</p>
<p><strong>更新</strong>:</p>
<p>你需要看得比校勘更远些msdn.microsoft.com/en-us/library/ms174596(v=SQL.90)。aspx建议,对于Latin1_-General_-CI_,因为使用的编码是cp1252“”,所以是codswallop。该表为每个区域设置提供一个LCID(区域设置ID)、<strong>默认值</strong>排序规则和代码页。是的,排序规则“Latin1_General_CI_AS”与多个地区的cp1252代码页关联列出。对于两个地区(亚美尼亚语和格鲁吉亚语),它与“Unicode”代码页(!!!)关联列出。</p>
<p>很简单,您需要了解数据库使用的代码页是什么。</p>
<p>尝试从数据库中提取数据而不指定任何编码。<strong>不要费心编码,不管你猜你的控制台可能在使用什么编码——这只会增加另一个混乱的来源。相反,使用<code>print repr(data)</code>。在这里报告您从repr()中获得的信息,在这里您需要非拉丁字符。</p>