| If the result is a BLOB then the sqlite3_column_bytes() routine | returns the number of bytes in that BLOB. No type conversions | occur. If the result is a string (or a number since a number can be | converted into a string) then sqlite3_column_bytes() converts the | value into a UTF-8 string and returns the number of bytes in the | resulting string. The value returned does not include the \000 | terminator at the end of the string. The sqlite3_column_bytes16() | routine converts the value into a UTF-16 encoding and returns the ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | number of bytes (not characters) in the resulting string. The \u0000 | terminator is not included in this count.
As far as I can see, it does perform conversions internally, and they will most likely fail if the inserted data isn't properly encoded.
Regards, /Al