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

时间:2014-11-20 01:16:14

标签: c# string byte converter

好的,所以我早些时候问了一个问题但是我觉得它还不够明确。 继承受困扰的代码

        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。我希望这更有意义。

2 个答案:

答案 0 :(得分:4)

只需将该行更改为:

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

答案 1 :(得分:1)

如上所述,这将纠正代码

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();