更新された質問¹
文字クラス、比較、並べ替え、正規化、および照合に関して、どの .NET プラットフォームでどの Unicode バージョンがサポートされていますか?
元の質問
.NET が Unicode バージョン 3.0 をサポートしていること、および内部の UTF-16 エンコーディングが実際には UTF-16 ではなく、実際には UCS-2 を使用していることを漠然と読んだことを覚えています。これは同じではありません。たとえば、U+FFFF を超える文字は使用できないようです。つまり、次のように考えてください。
string s = "\u1D7D9"; // ("Mathematical double-struck digit one")
そして、文字列を格納します"ᵽ9"
。
私は基本的に、次の回答の決定的な参照を探しています。
- .NET の真の UTF-16 でない場合、それは何ですか?
- .NET でサポートされている Unicode のバージョンは何ですか?
- 最近のバージョンがサポートされていないか、近い将来に計画されていない場合、誰かが (非) 商用ライブラリを知っていますか、またはこの問題を回避する方法を教えてください。
¹)時間の経過とともに質問を更新しました。回答とより大きなコミュニティに関しては、より適切なようです。コメントで回答された部分の代わりに、元の質問を残しました。また、古い UCS-2 (サロゲートなし) は現在の古い 32 ビット Windows バージョンで使用され、.NET は常に内部で UTF-16 (サロゲートあり) を使用してきました。