3

たぶん私は32ビット文字列は必要ありませんが、32ビット文字を表す必要があります

http://www.fileformat.info/info/unicode/char/1f4a9/index.htm これで、symbolフォントを取得し、(URLまたは任意のテキスト領域に)貼り付けると文字が表示されるので、そのためのフォントサポート。

しかし、C#/。NETアプリでどのようにサポートしますか?

-編集-何かを追加します。上記の文字を.NETwinformアプリに貼り付けたときに、文字が正しく表示されません。それをFirefoxに貼り付けると、正しく表示されます。WinFormアプリで文字を正しく表示するにはどうすればよいですか?

4

2 に答える 2

9

私はあなたの質問を理解しているかどうかわかりません:

  • String.NET の s は UTF-16 でエンコードされており、これについては何もできません。文字列の UTF-32 バージョンを取得する場合は、 UTF32Encodingクラスを使用してバイト配列に変換する必要があります。
  • Charしたがって、.NET のアクターは 16 ビット長であり、これについても何もできません。UTF-32 でエンコードされた文字は、バイト配列 (4 項目) でのみ表すことができます。この目的のためにUTF32Encodingクラスを使用できます。
  • すべての UTF-32 文字には同等の UTF-16 表現があり、その逆もあります。したがって、このコンテキストでは、文字とそのさまざまな表現 (エンコーディング) についてのみ話すことができました。UTF-16 は .NET プラットフォームで選択された表現です。
于 2011-07-23T15:55:20.107 に答える
3

「サポート」とは具体的に何を意味するのか、あなたは言いませんでした。charただし、文字列操作を行わない限り、1 つの 16 ビット に収まらない文字を処理するために必要な特別なことは何もありません。stringそれらは単にサロゲート ペアとして表されますが、 を全体として扱う場合は、それについて知る必要はありません。

1 つの例外は、一部の文字列操作メソッドが正しく機能しないことです。たとえば"\U0001F4A9".Substring(1)、有効な文字列ではないサロゲート ペアの後半を返します。

于 2011-07-23T15:55:57.400 に答える