Haskell HDBC-Sqlite3 always returns SqlByteString values
I am using HDBC sqlite3 haskell driver to access local sqlite3 database which
PRAGMA encoding
is
UTF-8
And as result, for example for
SELECT id, title FROM some_table
I'm always getting the result like this:
[[SqlByteString "1", SqlBy开发者_如何学编程teString "\210\129\123\211"], ... ]
That's weird!
Yes, title contains 'national' symbols and yes, I'm sure that id
has type of INTEGER
.
So the questions are:
- Why 1 unicode symbol are threated as 2 ascii-like symbols?
- Why integer columns results bytestring values?
SQLite is an untyped database, so the fields in your database don't really have a type at all. You should be converting them to a more Haskellish value by using fromSql
or safeFromSql
from Database.HDBC.SqlValue.
精彩评论