2

私はWindowsからLinuxへのアプリの移植に取り組んでいます。データベースを除いて、すべてが正常に機能するようになりました。を呼び出すたびにsqlite3_column_text16()、ほとんどの文字が欠落している文字列が表示されます。Windowsの場合と同様に、この動作がどこから発生したのかはわかりません。

私は特別なことは何もしていません

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

ありがとうございました。

4

1 に答える 1

1

Unicode文字は16ビットを超える可能性があるため、Windowsを除くすべてのオペレーティングシステムは、に32ビット型を使用しwchar_tます。

UTF-16からUTF-32(代理ペアの処理)に変換できますが、プログラムの設計方法によっては、どこでもUTF-8を使用する方が簡単な場合があります。

于 2013-03-15T08:56:15.773 に答える