手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Asp.Net编程>列表

ASP.NET中实现中文简/繁体自动转换的类

来源:互联网 作者:west263.com 时间:2008-02-22
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

}

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
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!