Windows Server 2012にあるActive Directoryに接続するアプリケーションを作成しました。最初にアプリケーションはADから組織単位の名前を取得します。次に、すべての組織ユニットからユーザーを取得し、それらを処理し、別のWebアプリケーションに情報を送信します。C++英語でのキリル文字列の処理Windows
組織からのユニットとユーザーは、英語とロシア語の両方で名前を持つことができます。
私はロシア語のシステム言語でWindowsで私のアプリを実行しているので、すべてgoind良いです。
しかし、Windows Server(または英語のシステム言語のWindows 7)で実行しようとしているときに、私はの "?"代わりにロシア文字列の両方で:組織単位のアプリケーションの中に
の名前が含まれてい
- ログファイル
- コンソール出力
- Active Directoryの検索文字列は、私はし
std::string
とstd::wstring
を使用しようとしましたActive Directoryのデータを抽出し、同じ結果を得ました - "?"ロシア語の代わりに。MSVS 2013、Windows 8.1をデベロッパースタンドで使用する。また、Active Directoryに接続するためのlibLDAP(バージョン3を設定)。
アプリケーションでロシア語の文字列を正しく処理するには、何が必要ですか?
を助けてくれてありがとうUnicodeと文字セットについて(言い訳なし!)](http://www.joelonsoftware.com/articles/Unicode.html)。あなたが使っている文字**エンコーディング**はまったく分かりませんし、明らかにあなたもどちらもありません。最初に修正する必要があります。 – IInspectable
Windows 7のソリューション:[http://blooplace.eu/how-to-fix-cyrillic-text-on-windows-7/](http://blooplace.eu/how-to-fix-cyrillic-text- on-windows-7 /) – Rotem
@Rotem: "解決策"は単に実際の問題を隠すだけです。それはそれを解決しません。そしてOPは、システム言語を変更すると問題が消えてしまうことをよく認識しています。文字エンコーディングを理解する必要があります。また、特定のライブラリをエンコードする文字が、ランダムな外部環境設定に依存しない真の解決策を生み出すために使用している必要があります。 – IInspectable