我正在努力将应用程序从Windows移植到Linux。除了数据库之外,我已经设法使一切正常运行。每当我打电话给sqlite3_column_text16()
时,我都会得到一个缺少大多数字符的字符串。我不知道这种行为源自于Windows,因为它无可挑剔地工作。
我没什么特别的,只是
wstring a(static_cast<wchar_t const *>(sqlite3_column_text16(stmt, 2)));
谢谢。
答案 0 :(得分:1)
Unicode字符可以有16位以上,因此除Windows以外的所有操作系统都使用wchar_t
的32位类型。
你可以从UTF-16转换为UTF-32(照顾代理对),但根据程序的设计方式,在任何地方使用UTF-8可能更容易。