4

ubuntu-10.10でpymssql-1.0.2とfreetds-0.82.7を使用しました。また、windows-7 に mssql2008 サーバーがあります。pymssql と freetds を使用して、ubuntu から mssql に接続できます。しかし、mssql データベースから Unicode データを取得できません。データベースの照合順序は Cyrillic_General_CI_AS です。

私の freetds.conf ファイルは次のようになります。

[mssql2008]
    host=10.0.0.34
    port=1433
    tds version=7.0

私のコードは次のようになります。

   conn = pymssql.connect(host=10.0.0.34\mssql2008, user=***, password=***, database=eoffice, as_dict=true, charset='iso-8859-1')
   crms = conn.cursor()
   crms.execute('SELECT cc_Name FROM tblHR_CodeClass')
   for row in crms.fetchall():
      raise u"Succeeded! Test data: " + row['cc_Name']
      break

期待される結果: "Өмнөговь аймаг" 実際の結果: "ªìíºãîâü àéìàã"

「UTF-8」文字セットを使用すると、fetchall() 呼び出しでエラーがスローされ、utf8 がコード ページの範囲外のデータを読み取れないことを意味します。

mssqlデータベースに保存されているUnicodeデータを取得するには? 手をあげてください!

よろしく、オーギル

4

1 に答える 1

2

本当にUnicodeデータですか?つまり、cc_Name 列は varchar または nvarchar ですか? varchar のように聞こえます。その場合は、iso-8859-1 の代わりに cp1251 または windows-1251 を文字セットとして使用してみてください。

于 2011-02-25T08:09:45.450 に答える