C# как получить правильную строку из GetString()

Я использую:

propItem.Value = System.Text.Encoding.UTF8.GetBytes(textBox1.Text + "\0");

где textBox1.Text содержит "MMM", чтобы установить значение и сохранить его в файле (propItem.Value - byte[]), но когда я пытаюсь прочитать файл, который я использую:

string myString = System.Text.Encoding.UTF8.GetString(propItem.Value);

и получить: "M\0M\0M\0\0\0". Кто-нибудь может посоветовать, как получить правильную строку, без '\ 0'. Я видел все ответы здесь относительно подобных проблем, но ни один из ответов не работал в моем случае.

Загрузка файла:

Image img0 = null;
string sourceFile;

private void btnLoad_Click(object sender, EventArgs e)
    {
        using (var selectFileDialog = new OpenFileDialog())
        {
            if (selectFileDialog.ShowDialog() == DialogResult.OK)
            {
                sourceFile = selectFileDialog.FileName;

                img0 = Image.FromFile(sourceFile);

                PropertyItem[] propItems = img0.PropertyItems;

                textBox1.Text = "Nothing in the file."; 
                foreach (PropertyItem propItem in propItems)
                {
                    if (propItem.Id == 0x9286)
                    {
                        string myString = System.Text.Encoding.UTF8.GetString(propItem.Value); 
                        textBox1.Text = myString ;
                    } 
                }
            }
        }
    }

1 ответ

Так должно быть:

string myString = System.Text.Encoding.Unicode.GetString(propItem.Value);
Другие вопросы по тегам