4

MSDN vb.netによると、この拡張文字セットを使用します。私の経験では、実際にこれを使用しています:

代替テキスト

  1. 私は何が欠けていますか?なぜ一方を使用し、もう一方を使用すると言うのですか?
  2. 私は何か間違ったことをしていますか?
  3. 元の文字セットへの何らかの変換ツールはありますか?
4

3 に答える 3

6

この動作は、Chrコマンドのドキュメントで定義されています。

返される値は、System.Globalization 名前空間の TextInfo クラスの ANSICodePage プロパティに含まれる、現在のスレッドのコード ページによって異なります。System.Globalization.CultureInfo.CurrentCulture.TextInfo.ANSICodePage を指定して、ANSICodePage を取得できます。

したがって、Chr127 より大きい値の出力はシステムに依存します。再現可能な結果が必要な場合は、 Encoding.GetEncoding(String)Encoding呼び出して目的のインスタンスを作成し、 Encoding.GetChars(Byte())を使用して数値を文字に変換します。

質問にリンクされているグラフの1 レベル上Chrに移動すると、このグラフが常にコマンドの出力であると主張していないことがわかります。

127 以上の Windows に表示される文字は、選択した書体によって異なります。

このセクションの図は、コンソール アプリケーションのデフォルトの文字セットを示しています。

アプリケーションは、コンソール アプリケーションではなく、WinForm アプリケーションです。コンソールでも、使用する文字セットを (コマンドを使用するなどしてchcp) 変更できるため、「デフォルト」という言葉が使われています。

.net で使用されるエンコーディングの詳細については、次の MSDN 記事をお勧めします: Character Encoding in the .NET Framework

于 2010-11-16T15:16:09.323 に答える
2

最初の文字セットは Code Page 437 (CP437) で、2 番目は Windows Latin-1 とも呼ばれる Code Page 1252 (CP1252) のように見えます。

VB.Net は単に PC のデフォルトのエンコーディングを選択しているだけだと思います。

于 2010-11-16T14:35:43.220 に答える
1

これはどうやって書いたのですか?通常、出力ストリーム関数を使用する場合、それに伴うエンコーディングを指定できるためです。

編集:これはC#ではないことは知っていますが、アイデアを見ることができます...

次のようにして、ファイルストリームのエンコーディングを設定する必要があります: ファイルストリームを作成するときにエンコーディングを設定する

于 2010-11-16T14:27:51.497 に答える