}
public override long Seek(long offset, System.IO.SeekOrigin direction)
{
return _sink.Seek(offset, direction);
}
public override void SetLength(long length)
{
_sink.SetLength(length);
}
public override void Close()
{
_sink.Close();
}
public override void Flush()
{
_sink.Flush();
}
public override int Read(byte[] buffer, int offset, int count)
{
return _sink.Read(buffer, offset, count);
}
/// <summary>
/// 实际处理字符替换的作业,将简体字和繁体字进行替换。
/// </summary>
/// <param name="buffer"> </param>
/// <param name="offset"></param>
/// <param name="count"></param>
public override void Write(byte[] buffer, int offset, int count)
{
Encoding e=Encoding.GetEncoding(936); //936是GB2312编码,950是Big5编码
string str=e.GetString(buffer,offset,count);
for(int i=0;i<str.Length;i )
{
int j=_sGB.IndexOf(str[i]);
if(j!=-1)str=str.Replace(_sGB[j],_tGB[j]);
}
e=Encoding.GetEncoding(System.Web.HttpContext.Current.Response.Charset);
_sink.Write(e.GetBytes(str), 0, e.GetByteCount(str));
}
}
public class EncodingFilter
{
Page thisPage;
public EncodingFilter(Page mPage)
{
thisPage=mPage;
}
/// <summary>
/// 对输入的流对象进行编码,然后Write
/// </summary>
/// <param name="EncodingStyle"></param>
public void G2BEncoding(string EncodingStyle)
{
//======================== 公共函数 Start =============================
thisPage.Response.ContentEncoding=Encoding.GetEncoding("GB2312");
if(EncodingStyle=="BIG5")
{
thisPage.Response.Filter = new G2B5Filter(thisPage.Response.Filter);
thisPage.Response.Charset="BIG5";
}
if(EncodingStyle=="GB2312")
{
thisPage.Response.Charset="GB2312";
}
//======================== 公共函数 End =============================
}
}
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




