4

これまで、組み込みシステム (ルーター、スイッチ、通信機器など) の C++ アプリケーションで std::string を使用してきました。

次のプロジェクトでは、Unicode サポートのために std::string から std::wstring に切り替えることを検討しています。これにより、たとえば、エンド ユーザーはコマンド ライン インターフェイス (CLI) で漢字を使用できるようになります。

どのような合併症 / 頭痛 / 驚きが予想されますか? たとえば、まだ std::string を使用しているサードパーティのライブラリを使用するとどうなりますか?

国際文字列のサポートは、私が取り組んでいる組み込みシステムの要件としてはそれほど強力ではないので、大きな頭痛の種にならない場合にのみサポートします。

4

3 に答える 3

1

std::wstring は、Windows で Unicode 文字列を保持するのに適していますが、他のほとんどのプラットフォームでは適切ではありません。また、ポータブル コードには適していません。std::string と UTF-8 に固執することをお勧めします。

于 2008-10-02T19:45:51.623 に答える
1

多くの通信プロトコルは 8 ビット文字 (または 7 ビット文字、またはその他の種類) を必要とするため、多くの場合、内部の wchar_t/wstring データと外部エンコーディング間の変換が必要になることに注意してください。

UTF-8 エンコーディングは、Unicode 文字を 8 ビットで表現する必要がある場合に便利です。(詳細については、UTF-8 に対して安全なコードを作成する方法を参照してください。) ただし、他のエンコーディングをサポートする必要がある場合があることに注意してください。

ますます多くのサードパーティ ライブラリが Unicode をサポートしていますが、まだ多くのサードパーティ ライブラリが Unicode をサポートしています。

頭を悩ませる価値があるかどうかは、私にはわかりません。それはあなたの要件が何であるかによって異なります。ゼロから始める場合は、後で std::string から std::wstring に変換するよりも、std::wstring から始める方が簡単です。

于 2008-10-02T18:57:06.017 に答える