if (ds.Tables[0].Rows.Count > 0)
{
Response.Clear();
strContent = check.NoHtml(ds.Tables[0].Rows[0]["内容"].ToString());
byte[] bytes = Encoding.UTF8.GetBytes(strContent);
byte[] allbyte = new byte[bytes.Length + 3];
allbyte[0] = (byte)((bytes.Length + 1) >> 8);
allbyte[1] = (byte)(bytes.Length + 1);
allbyte[2] = 32;
Array.Copy(bytes, 0, allbyte, 3, bytes.Length);
Response.BinaryWrite(allbyte);
Response.Flush();
Response.End();
}
读取的数据为什么在aspx页面上不会显示。
{
Response.Clear();
strContent = check.NoHtml(ds.Tables[0].Rows[0]["内容"].ToString());
byte[] bytes = Encoding.UTF8.GetBytes(strContent);
byte[] allbyte = new byte[bytes.Length + 3];
allbyte[0] = (byte)((bytes.Length + 1) >> 8);
allbyte[1] = (byte)(bytes.Length + 1);
allbyte[2] = 32;
Array.Copy(bytes, 0, allbyte, 3, bytes.Length);
Response.BinaryWrite(allbyte);
Response.Flush();
Response.End();
}
读取的数据为什么在aspx页面上不会显示。
试试行不?
//我用这个方法写出来没问题,你看是不是你中间的逻辑有问题
protected void Page_Load(object sender, EventArgs e)
{
this.Response.Clear(); string str = "sdfsdfsdfsdfsdfsdf"; byte[] b = System.Text.Encoding.Default.GetBytes(str); this.Response.BinaryWrite(b); this.Response.Flush(); this.Response.End();
}
{
Response.Clear();
strContent = check.NoHtml(ds.Tables[0].Rows[0]["内容"].ToString());
byte[] bytes = Encoding.UTF8.GetBytes(strContent);
byte[] allbyte = new byte[bytes.Length + 3];
allbyte[0] = (byte)((bytes.Length + 1) >> 8);
allbyte[1] = (byte)(bytes.Length + 1);
allbyte[2] = 32;
Array.Copy(bytes, 0, allbyte, 3, bytes.Length);
Response.BinaryWrite(allbyte);
Response.Flush();
Response.End();
}
读取的数据为什么在aspx页面上不会显示。
如果只是为了显示的话Response.Write就可以了.
你在这里加一条语句看看allbyte里面还有没有数据
Response.BinaryWrite(allbyte);
如果读取的数据的话,那你就先把allbyte转化成一段字符串(数据),然后通过Response.Write打印到页面上呀
这个是STRING么?
如果是STRING 直接 response.write(strContent);
有必要还要转换么?
你这种写法本身不是为了显示在页面上的吧?取决于你二进制流的内容吧!
allbyte[0] = (byte)((bytes.Length + 1) >> 8);
allbyte[1] = (byte)(bytes.Length + 1);
allbyte[2] = 32;
看不明白。
第一个数组元素为什么要做位移!
要写在
protected void Page_Load(object sender, EventArgs e)
{}
里面啊!