前台TEST.aspx
<%
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
test.aspx.cs
"
Inherits
=
"
test
"
%>
<! DOCTYPE html PUBLIC " -//W3C//DTD XHTML 1.0 Transitional//EN " " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >
< html xmlns = " http://www.w3.org/1999/xhtml " >
< head runat = " server " >
< title > 无标题页 </ title >
</ head >
< body >
< form id = " form1 " runat = " server " >
< div >
测试页面
< asp:Button id = " btnBig " onclick = " btnBig_Click " runat = " server " Text = " big5 " ></ asp:Button >< asp:Button id = " btnChn " onclick = " btnChn_Click " runat = " server " Text = " 简 " ></ asp:Button >
</ div >
</ form >
</ body >
</ html >
<! DOCTYPE html PUBLIC " -//W3C//DTD XHTML 1.0 Transitional//EN " " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >
< html xmlns = " http://www.w3.org/1999/xhtml " >
< head runat = " server " >
< title > 无标题页 </ title >
</ head >
< body >
< form id = " form1 " runat = " server " >
< div >
测试页面
< asp:Button id = " btnBig " onclick = " btnBig_Click " runat = " server " Text = " big5 " ></ asp:Button >< asp:Button id = " btnChn " onclick = " btnChn_Click " runat = " server " Text = " 简 " ></ asp:Button >
</ div >
</ form >
</ body >
</ html >
后台代码
protected void Page_Load( object sender, EventArgs e)
... {
DoLanguageChange();
}
private void DoLanguageChange()
... {
if (Session["big5"] != null && Session["big5"].ToString() == "2" && this.Request.Params["btnChn"]==null)
...{
Response.Filter = new DreamZone.Core.CG2BFilter(Response.Filter);
//this.Response.ContentEncoding = Encoding.GetEncoding("Big5");
}
else
...{
Response.Filter = new SimpleStream(this.Response.Filter);
}
}
protected void btnBig_Click( object sender, EventArgs e)
... {
Session["big5"] = 2;
DoLanguageChange();
}
protected void btnChn_Click( object sender, EventArgs e)
... {
Session["big5"] = 1;
DoLanguageChange();
}
用到两个类(参考了网上好多人的东东)
SimpleStream 类(用于简体)
using
System;
using System.Data;
using System;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;
using System.Web;
/**/ /// <summary>
/// CG2BFilter 的摘要说明。
/// </summary>
public class SimpleStream : Stream
... {
Stream responseStream;
long position;
StringBuilder responseHtml;
public SimpleStream(Stream inputStream)
...{
responseStream = inputStream;
responseHtml = new StringBuilder();
}
Filter overrides#region Filter overrides
public override bool CanRead
...{
get ...{ return true; }
}
public override bool CanSeek
...{
get ...{ return true; }
}
public override bool CanWrite
...{
get ...{ return true; }
}
public override void Close()
...{
responseStream.Close();
}
public override void Flush()
...{
responseStream.Flush();
}
public override long Length
...{
get ...{ return 0; }
}
public override long Position
...{
get ...{ return position; }
set ...{ position = value; }
}
public override long Seek(long offset, SeekOrigin origin)
...{
return responseStream.Seek(offset, origin);
}
public override void SetLength(long length)
...{
responseStream.SetLength(length);
}
public override int Read(byte[] buffer, int offset, int count)
...{
return responseStream.Read(buffer, offset, count);
}
#endregion
转换任务#region 转换任务
public override void Write(byte[] buffer, int offset, int count)
...{
string strBuffer = System.Text.UTF8Encoding.UTF8.GetString(buffer, offset, count);
// string finalHtml = Simplified2Traditional(strBuffer);
byte[] data = System.Text.UTF8Encoding.UTF8.GetBytes(strBuffer);
responseStream.Write(data, 0, data.Length);
//string strBuffer = System.Text.Encoding.GetEncoding(936).GetString(buffer, offset, count);
//string finalHtml = Simplified2Traditional(strBuffer);
//byte[] data = System.Text.UTF8Encoding.GetEncoding("Big5").GetBytes(finalHtml);
//responseStream.Write(data, 0, data.Length);
}
#endregion
自定义函数#region 自定义函数
public string Traditional2Simplified(string str)
...{ //繁体转简体
return (Microsoft.VisualBasic.Strings.StrConv(str, Microsoft.VisualBasic.VbStrConv.SimplifiedChinese, 0));
}
public string Simplified2Traditional(string str)
...{ //简体转繁体
return (Microsoft.VisualBasic.Strings.StrConv(str as String, Microsoft.VisualBasic.VbStrConv.TraditionalChinese, 0));
}
#endregion
}
using System.Data;
using System;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;
using System.Web;
/**/ /// <summary>
/// CG2BFilter 的摘要说明。
/// </summary>
public class SimpleStream : Stream
... {
Stream responseStream;
long position;
StringBuilder responseHtml;
public SimpleStream(Stream inputStream)
...{
responseStream = inputStream;
responseHtml = new StringBuilder();
}
Filter overrides#region Filter overrides
public override bool CanRead
...{
get ...{ return true; }
}
public override bool CanSeek
...{
get ...{ return true; }
}
public override bool CanWrite
...{
get ...{ return true; }
}
public override void Close()
...{
responseStream.Close();
}
public override void Flush()
...{
responseStream.Flush();
}
public override long Length
...{
get ...{ return 0; }
}
public override long Position
...{
get ...{ return position; }
set ...{ position = value; }
}
public override long Seek(long offset, SeekOrigin origin)
...{
return responseStream.Seek(offset, origin);
}
public override void SetLength(long length)
...{
responseStream.SetLength(length);
}
public override int Read(byte[] buffer, int offset, int count)
...{
return responseStream.Read(buffer, offset, count);
}
#endregion
转换任务#region 转换任务
public override void Write(byte[] buffer, int offset, int count)
...{
string strBuffer = System.Text.UTF8Encoding.UTF8.GetString(buffer, offset, count);
// string finalHtml = Simplified2Traditional(strBuffer);
byte[] data = System.Text.UTF8Encoding.UTF8.GetBytes(strBuffer);
responseStream.Write(data, 0, data.Length);
//string strBuffer = System.Text.Encoding.GetEncoding(936).GetString(buffer, offset, count);
//string finalHtml = Simplified2Traditional(strBuffer);
//byte[] data = System.Text.UTF8Encoding.GetEncoding("Big5").GetBytes(finalHtml);
//responseStream.Write(data, 0, data.Length);
}
#endregion
自定义函数#region 自定义函数
public string Traditional2Simplified(string str)
...{ //繁体转简体
return (Microsoft.VisualBasic.Strings.StrConv(str, Microsoft.VisualBasic.VbStrConv.SimplifiedChinese, 0));
}
public string Simplified2Traditional(string str)
...{ //简体转繁体
return (Microsoft.VisualBasic.Strings.StrConv(str as String, Microsoft.VisualBasic.VbStrConv.TraditionalChinese, 0));
}
#endregion
}
繁体过滤类
using
System;
using System.Data;
using System;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;
using System.Web;
namespace DreamZone.Core
... {
/**//// <summary>
/// CG2BFilter 的摘要说明。
/// </summary>
public class CG2BFilter : Stream
...{
Stream responseStream;
long position;
StringBuilder responseHtml;
public CG2BFilter(Stream inputStream)
...{
responseStream = inputStream;
responseHtml = new StringBuilder();
}
Filter overrides#region Filter overrides
public override bool CanRead
...{
get ...{ return true; }
}
public override bool CanSeek
...{
get ...{ return true; }
}
public override bool CanWrite
...{
get ...{ return true; }
}
public override void Close()
...{
responseStream.Close();
}
public override void Flush()
...{
responseStream.Flush();
}
public override long Length
...{
get ...{ return 0; }
}
public override long Position
...{
get ...{ return position; }
set ...{ position = value; }
}
public override long Seek(long offset, SeekOrigin origin)
...{
return responseStream.Seek(offset, origin);
}
public override void SetLength(long length)
...{
responseStream.SetLength(length);
}
public override int Read(byte[] buffer, int offset, int count)
...{
return responseStream.Read(buffer, offset, count);
}
#endregion
转换任务#region 转换任务
public override void Write(byte[] buffer, int offset, int count)
...{
string strBuffer = System.Text.UTF8Encoding.UTF8.GetString(buffer, offset, count);
string finalHtml = Simplified2Traditional(strBuffer);
byte[] data = System.Text.UTF8Encoding.UTF8.GetBytes(finalHtml);
responseStream.Write(data, 0, data.Length);
//string strBuffer = System.Text.Encoding.GetEncoding(936).GetString(buffer, offset, count);
//string finalHtml = Simplified2Traditional(strBuffer);
//byte[] data = System.Text.UTF8Encoding.GetEncoding("Big5").GetBytes(finalHtml);
//responseStream.Write(data, 0, data.Length);
}
#endregion
自定义函数#region 自定义函数
public string Traditional2Simplified(string str)
...{ //繁体转简体
return (Microsoft.VisualBasic.Strings.StrConv(str, Microsoft.VisualBasic.VbStrConv.SimplifiedChinese, 0));
}
public string Simplified2Traditional(string str)
...{ //简体转繁体
return (Microsoft.VisualBasic.Strings.StrConv(str as String, Microsoft.VisualBasic.VbStrConv.TraditionalChinese, 0));
}
#endregion
}
}
using System.Data;
using System;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;
using System.Web;
namespace DreamZone.Core
... {
/**//// <summary>
/// CG2BFilter 的摘要说明。
/// </summary>
public class CG2BFilter : Stream
...{
Stream responseStream;
long position;
StringBuilder responseHtml;
public CG2BFilter(Stream inputStream)
...{
responseStream = inputStream;
responseHtml = new StringBuilder();
}
Filter overrides#region Filter overrides
public override bool CanRead
...{
get ...{ return true; }
}
public override bool CanSeek
...{
get ...{ return true; }
}
public override bool CanWrite
...{
get ...{ return true; }
}
public override void Close()
...{
responseStream.Close();
}
public override void Flush()
...{
responseStream.Flush();
}
public override long Length
...{
get ...{ return 0; }
}
public override long Position
...{
get ...{ return position; }
set ...{ position = value; }
}
public override long Seek(long offset, SeekOrigin origin)
...{
return responseStream.Seek(offset, origin);
}
public override void SetLength(long length)
...{
responseStream.SetLength(length);
}
public override int Read(byte[] buffer, int offset, int count)
...{
return responseStream.Read(buffer, offset, count);
}
#endregion
转换任务#region 转换任务
public override void Write(byte[] buffer, int offset, int count)
...{
string strBuffer = System.Text.UTF8Encoding.UTF8.GetString(buffer, offset, count);
string finalHtml = Simplified2Traditional(strBuffer);
byte[] data = System.Text.UTF8Encoding.UTF8.GetBytes(finalHtml);
responseStream.Write(data, 0, data.Length);
//string strBuffer = System.Text.Encoding.GetEncoding(936).GetString(buffer, offset, count);
//string finalHtml = Simplified2Traditional(strBuffer);
//byte[] data = System.Text.UTF8Encoding.GetEncoding("Big5").GetBytes(finalHtml);
//responseStream.Write(data, 0, data.Length);
}
#endregion
自定义函数#region 自定义函数
public string Traditional2Simplified(string str)
...{ //繁体转简体
return (Microsoft.VisualBasic.Strings.StrConv(str, Microsoft.VisualBasic.VbStrConv.SimplifiedChinese, 0));
}
public string Simplified2Traditional(string str)
...{ //简体转繁体
return (Microsoft.VisualBasic.Strings.StrConv(str as String, Microsoft.VisualBasic.VbStrConv.TraditionalChinese, 0));
}
#endregion
}
}