可能重复:
编码为单字节扩展 ascii 值
在 C# 中,我试图用非打印字符(字节码高于 0xE0 的字符)替换字符串中的子字符串。我已经看到许多问题是相反的——即尝试从字符串中删除非打印字符——但不尝试插入非打印字符。下面的代码(不能正常工作)是我现在所在的位置:
string[] _symbol = {"Hello", "the", "man"};
string _source = "\"Hello, Hello,\" the man said.\n\"Hello,\" the woman replied.";
string _expect = "\"\xF3, \xF3,\" \xF2 \xF1 said.\n\"\xF3,\" \xF2 wo\xF1 replied.";
byte[] tblix = { 0xF3, 0x00 };
string _repl, _dest;
_repl = System.Text.Encoding.UTF8.GetString(tblix, 0, 1);
_dest = _source.Replace(_symbol[0], _repl);
tblix[0]--;
_repl = System.Text.Encoding.UTF8.GetString(tblix, 0, 1);
_dest = _dest.Replace(_symbol[1], _repl);
tblix[0]--;
_repl = System.Text.Encoding.UTF8.GetString(tblix, 0, 1);
_dest = _dest.Replace(_symbol[2], _repl);
bool check = (_dest == _expect);
File.WriteAllText("temp.dat", _dest);
我期望在 _dest 中产生一个相当于 _expect 的字符串;如果我使用 ASCII 编码,非打印字符将恢复为“?”。UTF8 也不能正常工作。此外,我希望将输出作为单字节字符序列写入文件,因此将所有内容转换为多字节编码最终需要返回单字节表示。有没有一种方便的方法来做我想要完成的事情?在此先感谢您的任何建议。