public static string Simplified2Traditional( string str) 
这个函数已经好使,不管这个函数内部怎么写,关键我想知道怎么用能在所有叶面怎么调用能起作用。
用最少工作量,把网站所有动态叶面都转换为繁体?
包括叶面上所有静态和动态的文字!

解决方案 »

  1.   

    look into Response.Filter, seehttp://www.aspnetresources.com/articles/HttpFilters.aspxanother way is to override Render method
      

  2.   

    在思归的帮助下,繁体的问题我解决了,真的好开心!!
    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个数据库表内容!
      

  3.   

    那有这么复杂,只5行代码就可以把所有aspx转换为繁体。
      

  4.   

    sp1234(羊肉太好吃,可是怕吃多了自己身上骟气,哎!)  5行代码就可以把所有aspx转换为繁体?
    愿闻其详!
      

  5.   

    to sp1234(羊肉太好吃,可是怕吃多了自己身上骟气,哎!) 定义字体写在CSS文件里就行了
    '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