Windows 以外のプラットフォームでは、文字列を簡単に使用char *
して UTF-8 として扱うことができます。
問題は、Windows では、wchar* 文字列 (W) を使用してメッセージを受け入れて送信する必要があることです。ANSI 関数 (A) を使用する場合、Unicode はサポートされません。
したがって、真に移植可能なアプリケーションを作成したい場合は、Windows で Unicode としてコンパイルする必要があります。
さて、コードをきれいに保つために、文字列を処理するための推奨される方法、コードの醜さを最小限に抑える方法を確認したいと思います。
必要な文字列の種類: std::string
, std::wstring
, std::tstring
, char *
, wchat_t *
, TCHAR*
( CString
ATL 1)。
発生する可能性のある問題:
cout/cerr/cin
およびその Unicode バリアントwcout,wcerr,wcin
- すべてのワイド文字列関数とその TCHAR マクロの名前が変更されまし
strcmp
た。wcscmp
_tcscmp
- コード内の定数文字列。TCHAR を使用すると、コードに
_T()
マクロを入力する必要があります。
どのアプローチが最善だと思いますか? (例は大歓迎です)
個人的にはstd::tstring
アプローチに行きますが、必要な変換がどのように行われるかを確認したいと思います。