1

• のような印刷不可能な ASCII 拡張文字を受け入れるように C# で文字列を作成するにはどうすればよいですか。

4

3 に答える 3

1

拡張 ASCII は、上位 8 ビットが異なる値に設定された単なる ASCII です。

問題は、どの委員会も拡張 ASCII の標準を承認していないという事実にあります。そこには多くの亜種があり、何を使用しているのかを知る方法はありません。

現在、C# は、使用している拡張 ASCII とは異なる UTF-16 エンコーディングを使用しています。

一致する Unicode 文字を見つけて、次のように表示する必要があります。

string a ="\u2649"  ; //where 2649 is a the Unicode number
Console.write(a) ;  

または、ファイルが使用しているエンコーディングを見つけて、そのように使用することもできます。エンコーディング Windows-1252:

Encoding encoding = Encoding.GetEncoding(1252);

およびUTF-16の場合

Encoding enc = new UnicodeEncoding(false, true, true);

を使用して変換します

 Encoding.Convert (Encoding, Encoding, Byte[], Int32, Int32)

詳細はこちら

于 2012-12-19T04:25:05.467 に答える
0

.NET 文字列は UTF-16 でエンコードされており、extended-ascii ではありません (それが何であれ)。文字に数字を追加するだけで、UTF-16 プレーン セット内の別の定義済み文字が得られます。基になる文字を拡張 ASCII エンコーディングで表示したい場合は、新しく計算された文字を、話しているエンコーディングから UTF-16 に変換する必要があります。参照: http://msdn.microsoft.com/en-us/library/66sschk1.aspx

于 2012-12-19T04:06:02.283 に答える
0

これを試してください。これらの文字を次のように文字列に変換します。

string equivalentLetter = Encoding.Default.GetString(new byte[] { (byte)letter });

これで、同等の文字に正しい文字列が含まれるようになりました。EUROシンボルでこれを試してみましたが、うまくいきました。

于 2012-12-19T03:35:06.583 に答える