0

私はFirebreathを使用してChrome拡張機能を作成します:http ://slimtext.org そして私は問題に遭遇します:拡張機能はWindowsで漢字をうまくサポートしていません。多くの調査の結果、私はこれを見つけました:http ://www.boost.org/doc/libs/1_50_0/libs/locale/doc/html/default_encoding_under_windows.html

解決策はブースト/ロケールを使用することだと思います。しかし、https://github.com/firebreath/firebreath-boostプロジェクトにはboost/localeが含まれていないようです。1.50.0ブランチには、マスターブランチよりも新しいブーストが含まれていますが、どちらにもブースト/ロケールは含まれていません。

外部ブーストを使用するか、外部ブーストからロケールコードをコピーしようとしましたが、失敗しました(makeを実行するとロケールにリンクできませんでした)

あなたの提案は何ですか?Firebreathと一緒にブーストロケールを使用するにはどうすればよいですか?

4

2 に答える 2

1

firebreath-boost はフル ブーストのサブセットにすぎません。すべてのブーストを使用するには、ブーストを手動でインストールし、システム ブーストを使用します。http://www.firebreath.org/display/documentation/Prep+Scriptsを参照

于 2013-03-17T04:30:22.023 に答える
0

Windowsで外部Boostを使用してFirebreathプロジェクトをコンパイルできませんでした。そして、多くの調査の結果、ブースト/ロケールが私の元の問題の鍵であることに疑問を持ち始めました。漢字のエンコードの問題です。

最後に、ブースト/ロケールなしで解決しました。

  1. 可能な限り、文字列の代わりにwstringを使用してください
  2. Windowsやその他のオペレーティングシステム用にコードを個別に作成する必要がある場合があります。例:

#ifdef _WIN32

    file.open(path.c_str()); //path is std::wstring

#else

    fs::path the_path(path);            
    file.open(the_path.generic_string().c_str());

#endif

于 2013-03-18T01:58:06.277 に答える