SQLite错过了文字检索的字符

我正在将应用程序从Windows移植到Linux。 我已经设法使所有的工作,因为它应该,除了数据库。 每当我调用sqlite3_column_text16() ,我得到一个string是缺less大多数字符。 我不知道这种行为源于Windows,它无可挑剔的工作。

我没什么特别的,只是

 wstring a(static_cast<wchar_t const *>(sqlite3_column_text16(stmt, 2))); 

谢谢。

Unicode字符可以有16位以上,所以除Windows以外的所有操作系统都使用32位类型的wchar_t

你可以从UTF-16转换为UTF-32(照顾代理对),但是根据程序设计的方式,在任何地方使用UTF-8都可能更容易。