我正在将应用程序从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都可能更容易。