1

テキストモードのゲームを作成していますが、C#で重要な文字を表示する際に問題が発生しているようです。それらはコードページCP437から来ていますが、コードページを437に設定したとしても:

Console.OutputEncoding = Encoding.GetEncoding(437);

必要な文字を印刷しようとすると、「????」だけが表示されます。(いくつかの疑問符)、あたかもVisualStudioのコンソールがそれらを印刷できなかったかのように。必要なこれらの文字は、0xB0、0xB1、0xB2、0xDBです。

ところで、私はこのエンコーディングで256文字すべてを印刷しましたが、「?」として表示される文字がはるかに多いことがわかります。

TIA。

4

1 に答える 1

2

コンソールのデフォルトのコードページはすでに437です。最も可能性の高い障害モードは、実際には、これらの文字のUnicodeバージョンではなく0xb0などを書き込もうとしています。これは確かに多くの疑問符を引き起こしますが、U+0080からU+00ffの範囲の多くのコードポイントは割り当てられていないか、437ページに対応する文字がありません。

コードページ437の0xb0は、C#コードでは「\u2591」です。コードについては、このページを確認してください。

于 2012-07-19T17:21:23.327 に答える