![]() I think that this could be an optional behaviour (but obviously the default) so a developer can read and write data in the encoding of choice (the developer has the responsibility to encode/decode data correctly) So it seems that SQLite does not care about string encodings letting the developers dealing with that.ΔΆ) UniDAC filters (mandatory, if I haven't missed something) text data with a UTF-8 decoding function Thus, programmers who want to store IS08859 data can do so using the UTF-8 interfaces" "SQLite is not particular about the text it receives and is more than happy to process text strings that are not normalized or even well-formed UTF-8 or UTF-16. So, given the fact that SQLite documentation states that a TEXT field is UTF-8 or UTF-16 encoded, the app that fill the datatabase is the one to blame. I've no sources in trial but I bet that UniDAC tries to convert the string with a UTF8Decode function (this one is changed from D2007 and D2009) I've tried unidac with D2007, D2010, DXE and I've noticied a slighty different results: in D2007 the string extracted is empty in >D2010 the string extracted is filled with question mark for the non UTF-8 chars. ![]() I've also opened the file with an hex editor and my toughts were confirmed, the data is stored in a single-byte string. I've investigated the problem a little further and its all about string encoding, the app that fill the database write the data as ANSI, no conversion to UTF-8 prior to send to the database. ![]() To see the field "descrizione" in SQLite Expert you must enable the "Default ANSI code page" setting in Tools->Options->General->Encoding
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |