MS-Active Directory からテキスト データを取得して Sqlite3 データベースに保存する C++ プログラムを作成しましたが、utf-8 エンコーディングに問題があります。
いくつかの読み取りによると、アクティブ ディレクトリからのデータは UTF-8 でエンコードされていますが、C++ から読み取る場合、Sqlite3 (デフォルトは utf-8) が UTF-8 として受け入れない「ワイド文字」 (wchar_t) として扱われます。 sqlite3_bind_text16を使用しない限り、「sqlite3_bind_text」のパラメーターに「char」のみを使用しますが、データベースのサイズが大きくなるため、使用したくありません。
関数「wcstombs_s」を使用して「wchar_t」から「char」に変換しようとしましたが、結果のデータが正しくありません。
唯一の方法は MultiByteToWideChar または WideCharToMultiByte を使用することだと読みましたが、変換のコストが非常に高いと読んだので試しませんでした。
あなたの誰かが同様の状況にあり、この問題に対するクリーンで効果的な解決策を見つけたかどうかを知りたい.
どうもありがとう!