質問

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

alt text

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

解決

この動作は、のドキュメントで定義されています Chr 指図:

返された値は、System.Globalization NamespaceのTextINFOクラスのANSICODEPAGEプロパティに含まれる現在のスレッドのコードページに依存します。 system.globalization.cultureinfo.currentculture.textinfo.ansicodepageを指定することにより、Ansicodepageを取得できます。

だから、の出力 Chr 127を超える値については、システム依存です。再現可能な結果が必要な場合は、の目的のインスタンスを作成します Encoding 電話することによって encoding.getEncoding(string), 、使用します encoding.getchars(byte()) 数値値を文字に変換します。

もし、あんたが 1つのレベルに上がります 質問にリンクされているチャートでは、このチャートが常にの出力であると主張していないことがわかります。 Chr 指図:

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

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

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

.NETで使用されているエンコーディングの詳細については、次のMSDN記事をお勧めします。 .NETフレームワークでの文字エンコード.

他のヒント

最初の文字セットはコード437(CP437)で、2番目はWindows Latin-1としても知られるコードページ1252(CP1252)のように見えます。

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

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

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

このようなことをすることで、Filestreamのエンコードを設定する必要があります。Filestreamを作成するときにエンコードを設定します

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top