VB.NET文字セット
-
11-10-2019 - |
質問
MSDNによると VB.NETは、この拡張された文字セットを使用します. 。私の経験では、実際にこれを使用しています。
- 何が足りないの?なぜそれは一方を使用し、もう一方を使用すると言うのですか?
- 私は何か間違ったことをしていますか?
- 元の文字セットに何らかの変換ツールがありますか?
解決
この動作は、のドキュメントで定義されています 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を作成するときにエンコードを設定します