ASCII 特殊文字 (ASCII 値 0x01 など) を文字列に挿入するにはどうすればよいですか?
私は次のものを使用しているので、私は尋ねます:
str.Replace( "<TAG1>", Convert.ToChar(0x01).ToString() );
これよりも良い方法があるに違いないと私は感じています。何か案は?
アップデート:
また、この方法論を使用する場合、ユニコードと ASCII の衝突について心配する必要はありますか?
\uXXXX
指定したコードを文字列に挿入するために使用できると思います。
ETA: テストしたところ、動作します。:-)
using System;
class Uxxxx {
public static void Main() {
Console.WriteLine("\u20AC");
}
}
これよりも良い方法があるに違いないと私は感じています。何か案は?
テキスト ツールを使用してバイナリ チャンクを操作しようとしているかのように見えます。たとえば、 byte を挿入したい場合、そのバイトが0x01
何を表しているかは気にしないので、もうテキストを操作する必要はありません。出力するエンコーディングも気にしないように見えるからです。
より良い方法は、操作しているものをデータのバイナリチャンクとして扱うことです。これにより、脆弱な回避策を使用したり副作用を心配したりすることなく、ビットとバイトを簡単に挿入できます。
また、この方法論を使用する場合、ユニコードと ASCII の衝突について心配する必要はありますか?
最初の問題は、タグが ASCII と衝突することです。TAG10 に到達すると、0x0A:改行と衝突します。9 つ以上のタグを取得しないようにすれば、安全です。バイト値が 0 ~ 127 の場合、Unicode エンコーディング (または UTF8) は ASCII エンコーディングと同じです。上位ビットが設定されている場合にのみ異なります。