C# - 将 UTF8 字符串转换为位、修改位,然后再转换回 UTF8 字符串
C# - Convert UTF8 String into bits, modify bits, and convert back into UTF8 String
对于我正在进行的项目,我需要能够将 UTF8 字符串转换为位或字节以进行修改和返回。
(Bit/Byte 类型无关紧要.. '138' 或 '00000001' 或 '0A' - 只要我能够将其修改为字符串并将字节转换回字符串即可)
我尝试了一些方法,但没有任何效果。
在大多数情况下,我一直在尝试获取 File.ReadAllBytes(path)
的结果并将字节转换为可修改的字符串并返回,但没有取得任何成功。还尝试使用测试字符串对 BitArray
做同样的事情,但没有更好的运气。
这是我在一个更好的示例中尝试做的事情(伪代码)
string input = "ABC";
Byte[] bytes = StringToBytes(input);
Byte[] bytes2;
string bytestring;
foreach (Byte byte in bytes) {
bytestring = byte.ToString();
/// modify bytestring to the value of a different byte here ///
bytes2.Add(bytestring.ToByte());
}
return BytesToString(bytes2);
Return:'ACD'
(或其他)
如果您尝试将文件读入 byte[] 数组,修改这些字节,然后将其转换回字符串,您可以这样做:
// read the file into a byte array
var bytes = File.ReadAllBytes(inputFileName);
// modify the bytes
// now convert back to a UTF string
var stringFromByteArray = Encoding.UTF8.GetString(bytes, 0, bytes.Length);
对于我正在进行的项目,我需要能够将 UTF8 字符串转换为位或字节以进行修改和返回。 (Bit/Byte 类型无关紧要.. '138' 或 '00000001' 或 '0A' - 只要我能够将其修改为字符串并将字节转换回字符串即可)
我尝试了一些方法,但没有任何效果。
在大多数情况下,我一直在尝试获取 File.ReadAllBytes(path)
的结果并将字节转换为可修改的字符串并返回,但没有取得任何成功。还尝试使用测试字符串对 BitArray
做同样的事情,但没有更好的运气。
这是我在一个更好的示例中尝试做的事情(伪代码)
string input = "ABC";
Byte[] bytes = StringToBytes(input);
Byte[] bytes2;
string bytestring;
foreach (Byte byte in bytes) {
bytestring = byte.ToString();
/// modify bytestring to the value of a different byte here ///
bytes2.Add(bytestring.ToByte());
}
return BytesToString(bytes2);
Return:'ACD'
(或其他)
如果您尝试将文件读入 byte[] 数组,修改这些字节,然后将其转换回字符串,您可以这样做:
// read the file into a byte array
var bytes = File.ReadAllBytes(inputFileName);
// modify the bytes
// now convert back to a UTF string
var stringFromByteArray = Encoding.UTF8.GetString(bytes, 0, bytes.Length);