为什么stream.size总是比字符串的长度长

时间:2012-11-29 09:27:40

标签: wpf stream

我有一个文本块,里面有一些文字。当我将textblock中的字符串转换为stream时,stream.size总是比textblock.text.length长,为什么?总是有4个字符。

1 个答案:

答案 0 :(得分:0)

这是我的测试和结果:

在XAML中:

<TextBlock x:Name="txtbx" Text="Four" />

在C#中:

int txt = txtbx.Text.Length;
long streamLength = 0;
using (Stream test = new MemoryStream())
{
    test.Write(txtbx.Text.Select(t => (byte)(int)t).ToArray(), 0, txtbx.Text.Length);
    streamLength = test.Length;
}
// Result: txt = 4
//        streamLength = 4

所以我的答案是:要么你有编码问题,要么你的流错了。如果我要猜测,你就搞乱了Stream.Write的最后两个参数。