public static string Simplified2Traditional( string str)
这个函数已经好使,不管这个函数内部怎么写,关键我想知道怎么用能在所有叶面怎么调用能起作用。
用最少工作量,把网站所有动态叶面都转换为繁体?
包括叶面上所有静态和动态的文字!
这个函数已经好使,不管这个函数内部怎么写,关键我想知道怎么用能在所有叶面怎么调用能起作用。
用最少工作量,把网站所有动态叶面都转换为繁体?
包括叶面上所有静态和动态的文字!
解决方案 »
- asp .net根据变量里的符号获取需要的值。。急急急急急急急急!!!!!!
- 子页面刷新父页面,如何让子页面显示在父页面的前面?
- OleDb这两种绑定数据的方法有什么不同呢?新手~~
- 求用jquery 正则匹配一段文字中某个词的出现次数
- 两个同样结构的dataset,如何取出来一个dataset有而另一个dataset没有的记录?
- 这种下拉列表该如何绑定?
- 请教各位高手:用C#做ASP.NET的中间件,请问那里有代码供参考(pet shop 例子除外)
- 小弟刚对ASP产生点兴趣,哪位兄才给我介绍几本好书
- web访问模式问题(急)
- 我想用ASP.Net实现数据在页面上的图表显示。(棒图和曲线图)
- 怎样使DropdownList控件可编辑?
- C#留言板实现 急!!!
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 ();
} #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);
} #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
}
}
调用只要一行代码:
Response.Filter = new DreamZone.Core.CG2BFilter(Response.Filter);//设置筛选器
挖哈哈哈哈!~~解决了我一个心头大患,而且执行时间非常短,应用繁体和不加繁体执行时间本机执行都是2毫秒多,叶面有137K数据,采用缓存读了10个数据库表内容!
愿闻其详!
'vb版
Imports System.IO
Imports System.Text'简转繁用法 在Page_PreRender事件中使用Response.Filter =New CG2BFilter(Response.Filter)
'繁转简用法 在Page_PreRender事件中使用Response.Filter =New CG2BFilter(Response.Filter,True)Public Class CG2BFilter
Inherits Stream
Private responseStream As Stream
Private _position As Long
Private responseHtml As StringBuilder
Private Mode As Boolean 'false简转繁 true 繁转简 Public Sub New(ByVal inputStream As Stream, Optional ByVal boolMode As Boolean = False) Me.Mode = boolMode
responseStream = inputStream
responseHtml = New StringBuilder End Sub#Region "Filter overrides" Public Overrides ReadOnly Property CanRead() As Boolean
Get
Return True
End Get
End Property Public Overrides ReadOnly Property CanSeek() As Boolean
Get
Return True
End Get
End Property
Public Overrides ReadOnly Property CanWrite() As Boolean
Get
Return True
End Get
End Property Public Overrides Sub Close()
responseStream.Close()
End Sub Public Overrides Sub Flush()
responseStream.Flush()
End Sub Public Overrides ReadOnly Property Length() As Long
Get
Return 0
End Get
End Property
Public Overrides Property Position() As Long
Get
Return _position
End Get
Set(ByVal Value As Long)
_position = Value
End Set
End Property Public Overrides Function Seek(ByVal offset As Long, ByVal origin As SeekOrigin) As Long
Return responseStream.Seek(offset, origin)
End Function Public Overrides Sub SetLength(ByVal length As Long)
responseStream.SetLength(length)
End Sub Public Overrides Function Read(ByVal buffer As Byte(), ByVal offset As Integer, ByVal count As Integer) As Integer
Return responseStream.Read(buffer, offset, count)
End Function
#End Region#Region "转换任务"
Public Overrides Sub Write(ByVal buffer As Byte(), ByVal offset As Integer, ByVal count As Integer) Dim strBuffer As String = UTF8Encoding.UTF8.GetString(buffer, offset, count)
Dim finalHtml As String
If Mode = True Then
finalHtml = Traditional2Simplified(strBuffer)
Else
finalHtml = Simplified2Traditional(strBuffer)
End If
Dim data As Byte() = UTF8Encoding.UTF8.GetBytes(finalHtml)
responseStream.Write(data, 0, data.Length) End Sub#End Region#Region "自定义函数" Public Function Traditional2Simplified(ByVal str As String) As String '繁体转简体
Return StrConv(str, Microsoft.VisualBasic.VbStrConv.SimplifiedChinese, 0) End Function Public Function Simplified2Traditional(ByVal str As String) As String '简体转繁体
Return StrConv(str, Microsoft.VisualBasic.VbStrConv.TraditionalChinese, 0) End Function#End RegionEnd Class