Problems Writing £ (pound sterling) To MS SQL Server using pymssql

Darren Mansell darren.mansell at opengi.co.uk
Mon Nov 17 09:52:14 EST 2008


Hi. 

I'm relatively new to python so please be gentle :)

I'm trying to write a £ symbol to an MS SQL server using pymsssql . This
works but when selecting the data back (e.g. using SQL management
studio) the £ symbol is replaced with £ (latin capital letter A with
circumflex).

I can reproduce it like so:

>>> con = pymssql.connect(host='testdb',user='testuser',password='password',database='test')
>>> sql = "insert into table_1 values ('£')"
>>> cur.execute(sql)
>>> con.commit()
>>> sql = "insert into table_1 values ('1')"
>>> cur.execute(sql)
>>> con.commit()
>>> sql = "select * from table_1"
>>> cur.execute(sql)
>>> cur.fetchall()
[('\xc2\xa3',), ('1',)]

If I insert a £ symbol in using SQL management studio then select it back from Python I get this:

[('\xc2\xa3',), ('1',), ('\xa3',)]

If I look in SQL management studio it says this:

£ 

for the inserts I do through Python/pymssql.

Does anyone have any ideas whats happening and how to fix it?

Thanks

-- 
Darren Mansell <darren.mansell at opengi.co.uk>



More information about the Python-list mailing list