pyODBCを使用してMSSQL2005Expressサーバーと通信しています。データを保存しようとしているテーブルは、nvarchar列で構成されています。
query = u"INSERT INTO tblPersons (name, birthday, gender) VALUES('"
query = query + name + u"', '"
query = query + birthday + u"', '"
query = query + gender + u"')"
cur.execute(query)
変数name、birthrday、およびgendeはExcelファイルから読み取られ、Unicode文字列です。クエリを実行し、SQL Server Management Studioでテーブルを確認するか、挿入されたばかりのデータをフェッチするクエリを実行すると、英語以外の言語で書き込まれたすべてのデータが疑問符に変わります。英語で書かれたデータは保存され、正しい方法で表に表示されます。CHARSET=UTF16
接続文字列に追加しようとしましたが、うまくいきませんでした。これは正常に機能するものを使用できますUTF-8
が、動作規則として、DBに保存されているすべてのデータがである必要がありますUTF16
。
ありがとう!