我最近要开发一个web项目,需要提供简体中文和繁体中文的支持,用户通过web页面录入数据到数据库中的时候,可以将其录入的简体(或繁体)内容转化为繁体(或简体)也保存到数据库中,该如何实现简体和繁体的互相转换。
我打算做两套页面,对于繁体页面我想通过字体转换使之成为简体的,然后存入数据库中。
上网查了一下有那种繁简转换的页面,不过效果不是很理想。考虑到繁体页面的效率问题,这种方法可能会比较慢。谁有好的办法呀?给提示一下呀。如果有具体的源码就更好了……

解决方案 »

  1.   

    .net可以实现全球化,可以支持中文,英文,文章繁体.的自由转化.你可以参照下面的文章..NET 多语言解决方案(demo篇) 
    http://www.cnblogs.com/hotsoho.net/archive/2005/01/03/85978.aspx
    基于ASP.NET实现全球化
    http://www.cnblogs.com/tonyjoule/archive/2005/04/20/9504.html
      

  2.   

    /// <summary>
    /// 简体转为繁体。
    /// </summary>
    /// <param name="str"></param>
    /// <returns></returns>
    public static string SimplifiedToTraditional(string str)
    {
    return Microsoft.VisualBasic.Strings.StrConv(str, Microsoft.VisualBasic.VbStrConv.TraditionalChinese, 0);
    }                   /// <summary>
    /// 繁体转为简体。
    /// </summary>
    /// <param name="str"></param>
    /// <returns></returns>
    public static string TraditionalToSimplified(string str)
    {
    return Microsoft.VisualBasic.Strings.StrConv(str, Microsoft.VisualBasic.VbStrConv.SimplifiedChinese, 0);
    }添加引用:Microsoft.VisualBasic.dll
      

  3.   

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