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