たとえば、次の文字列があります。
std::wstring s = L"123";
s.push_back(0x202e);
s.append(L"abc");
0x202e
これが UTF-16 マーク RLO (Right-to-Left override) です。このため、印刷後の文字列は次のようになりますcba123
。最初の文字列を印刷されるものに変換できる関数があるかどうかを尋ねたいです。
また、その関数もあらゆる種類の UTF-16 BOM を処理できるとよいでしょう。
標準的な方法はありますか?私は C++ でコーディングしており、boost やその他の無料のライブラリを自由に使用できます。