无法从字符串中获取字节 []

本文关键字:字节 获取 字符串 | 更新日期: 2023-09-27 18:31:01

好的,所以我之前问过一个问题,但我想这还不够清楚。这是有问题的代码

        byte data4 = byte.Parse(textBox1.Text, System.Globalization.NumberStyles.AllowHexSpecifier);
        byte data1 = byte.Parse(textBox2.Text, System.Globalization.NumberStyles.AllowHexSpecifier);
        byte data2 = byte.Parse(textBox3.Text, System.Globalization.NumberStyles.AllowHexSpecifier);
        string Text = "" + textBox1.Text;
        **byte[] b1 = textBox1.Text.Encoding.UTF8.GetBytes(Text);**

它是 c# 中button_click函数的一部分。我的目标是将一组文本框的文本转换为字节,然后可以使用这些字节写入打开的文件。对于 stared 代码,它总是给出一个错误,即字符串没有编码定义。我将网络框架设置为 4.5。我希望这更有意义。

无法从字符串中获取字节 []

只需将行更改为:

byte[] b1 = Encoding.UTF8.GetBytes(textBox1.Text);

正如上面的答案所说,这将纠正代码

byte[] b1 = Encoding.UTF8.GetBytes(textBox1.Text);

但是,如果目的是序列化到文件,则另一个选项是:

// using System.Runtime.Serialization.Formatters.Binary
Stream stream = File.Open(filename, FileMode.Create,FileAccess.ReadWrite);
BinaryFormatter format = new BinaryFormatter();
format.Serialize(stream, textBox1.Text);
stream.Close();

然后阅读

Stream stream = File.Open(filename, FileMode.Open,FileAccess.Read);
BinaryFormatter format = new BinaryFormatter();
text=(string)format.Deserialize(stream); // will throw exception if data is not right
stream.Close();