Objects of type std::string (that is, the specialization of basic_string with the char type and default char traits) are mapped to the SQL TEXT type. Depending on whether or not your database file needs to be compatible across platforms, you may need to ensure that the contents of the string are in a specific encoding. If the database will only ever be read by programs on the same platform using the same encoding, then you can save and load the strings without caring about the encoding. If, however, the database can be moved between platforms, or even between different encodings on the same platform, then you should ensure that the string is written out using a standard encoding. The best encoding to use for such a purpose is UTF-8. Thus if you need cross platform compatibility and are using std::string objects that are not UTF-8 encoded, you should save them by first converting each string object to a temporary std::string that has its contents in the UTF-8 encoding and then saving that UTF-8 encoded string, and do the reverse for loading the string.
If you have a different string type, you should serialize it, if possible, by converting its instances to and from a temporary std::string object and then serializing the temporary std::string object. The std::string object should be UTF-8 encoded if possible.
std::wstring is not supported by this library because wchar_t is of indefinite size (some platforms use a 4 byte wchar_t) and indefinite encoding, which makes its serialization, errr, difficult.
UTF-16 (UCS-2) strings are not (yet) part of standard C++ so there is no support at this time for them.