txtファイルを書きたい。一部の文字は \'c1 のようにエスケープする必要があります。ここで、c1 は 1251 をエンコードした文字のコードです。
指定された char 変数を文字列に変換して、エンコーディングのコードを表すにはどうすればよいですか?
utf でこれを行う方法を見つけましたが、他の ecnoding では方法がありませんでした。utf バリアントには Char.ConvertToUtf32() メソッドがあります。
// get the encoding
Encoding encoding = Encoding.GetEncoding(1251);
// for each character you want to encode
byte b = encoding.GetBytes("" + c)[0];
string hex = b.ToString("x");
string output = @"\'" + hex;
指定された char 変数を文字列に変換して、エンコーディングのコードを表すにはどうすればよいですか?
次のようなことを試してください:
var enc = Encoding.GetEncoding("Windows-1251");
char myCharacter = 'д'; // Cyrillic 'd'
byte code = enc.GetBytes(new[] { myCharacter, })[0];
Console.WriteLine(code.ToString()); // "228" (decimal)
Console.WriteLine(code.ToString("X2")); // "E4" (hex)