2

ASCII 特殊文字 (ASCII 値 0x01 など) を文字列に挿入するにはどうすればよいですか?

私は次のものを使用しているので、私は尋ねます:

str.Replace( "<TAG1>", Convert.ToChar(0x01).ToString() );

これよりも良い方法があるに違いないと私は感じています。何か案は?

アップデート:

また、この方法論を使用する場合、ユニコードと ASCII の衝突について心配する必要はありますか?

4

3 に答える 3

6

\uXXXX指定したコードを文字列に挿入するために使用できると思います。

ETA: テストしたところ、動作します。:-)

using System;
class Uxxxx {
    public static void Main() {
        Console.WriteLine("\u20AC");
    }
}
于 2008-09-19T07:27:33.150 に答える
1

これよりも良い方法があるに違いないと私は感じています。何か案は?

テキスト ツールを使用してバイナリ チャンクを操作しようとしているかのように見えます。たとえば、 byte を挿入したい場合、そのバイト0x01何を表しているかは気にしないので、もうテキストを操作する必要はありません。出力するエンコーディングも気にしないように見えるからです。

より良い方法は、操作しているものをデータのバイナリチャンクとして扱うことです。これにより、脆弱な回避策を使用したり副作用を心配したりすることなく、ビットとバイトを簡単に挿入できます。

于 2009-07-24T08:20:47.497 に答える
1

また、この方法論を使用する場合、ユニコードと ASCII の衝突について心配する必要はありますか?

最初の問題は、タグが ASCII と衝突することです。TAG10 に到達すると、0x0A:改行と衝突します。9 つ以上のタグを取得しないようにすれば、安全です。バイト値が 0 ~ 127 の場合、Unicode エンコーディング (または UTF8) は ASCII エンコーディングと同じです。上位ビットが設定されている場合にのみ異なります。

于 2008-09-19T07:42:52.503 に答える