The sqlite char() function returns unicode. Apparently, the encoding for code point 133 is two characters, namely c2 85. You seem to be expecting char() to return ISO characters, which it does not do.
Calling sqlite3_value_text16 instructs SQLite to convert the contents of the field into utf16 with native byte order from (assumed) utf8, which may have funny results if the source is not indeed UTF8 but rather ISO or some strange (windows) codepage. -----Ursprüngliche Nachricht----- Von: sqlite-users [mailto:sqlite-users-boun...@mailinglists.sqlite.org] Im Auftrag von x Gesendet: Montag, 07. August 2017 15:39 An: sqlite-users@mailinglists.sqlite.org Betreff: [sqlite] hex and char functions In c++ I tried to call a sqlite udf using the following sql UnicodeString SQL=“select udf(‘5\u00856’);” Which was prepared using sqlite3_prepare16_v2. (I was experimenting with sending a udf a group of numbers without getting involved with blobs). Debugging the udf I recovered the string (call it Str) using sqlite3_value_text16. Str[1]==’5’ & Str[3]==’6’ but Str[2]==’?’ (or Unicode 3F) I also tried retrieving the string using sqlite3_value_text to return a const unsigned char * but that also seemed to have a problem with values beyond 127. What am I missing? Related Select hex(char(65,133,66)); returns ‘41C28542’ whereas I expected ‘418542’. What is the ‘C2’ about? _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users ___________________________________________ Gunter Hick Software Engineer Scientific Games International GmbH FN 157284 a, HG Wien Klitschgasse 2-4, A-1130 Vienna, Austria Tel: +43 1 80100 0 E-Mail: h...@scigames.at This communication (including any attachments) is intended for the use of the intended recipient(s) only and may contain information that is confidential, privileged or legally protected. Any unauthorized use or dissemination of this communication is strictly prohibited. If you have received this communication in error, please immediately notify the sender by return e-mail message and delete all copies of the original communication. Thank you for your cooperation. _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users