| 网站首页 | 资讯 | 影音 | 图片 | 论坛 | 模拟驾考 | 免费取名算命 | 瓷都工具 | 留言本 | 域名 | 瓷都商城 | 汇款 | 
|
资讯首页
|
瓷都德化
|
站内新闻
|
影视剧情
|
汽车世界
|
网络文摘
|
周易八卦
|
教程技巧
|
房产信息
|
您现在的位置: 瓷都热线|诚信中国:“一就是一”(1941.CN) >> 资讯 >> 教程技巧0 >> 网络编程 >> 正文 登录 注册
专 题 栏 目
  • 四川汶川8.0级强震
  • 机动车驾驶员考试资料
  • 高考试题及答案
  • 最 新 热 门
     德化又添3个地理标志证明
     [组图]期待!德化龙门湖
     [组图]德化:“绿色动脉
     [图文]德化:造莲花美景
     [图文]德化:编织小网格
     [图文]德化龙门滩龙门湖
     [图文]福建德化县美湖镇
     德化白瓷艺术展亮相深圳
     [组图]“世界瓷都·润养
     德化:前妻婚内举债近8万
    最 新 推 荐
     [组图]期待!德化龙门湖
     [组图]德化:“绿色动脉
     [图文]德化龙门滩龙门湖
     [图文]福建德化县美湖镇
     [组图]德化各种花卉相继
     [组图]福建德化九仙山迎
     [图文]德化石牛山惊现双
     [组图]千年古瓷都德化的
     [组图]警方连捣5传销窝点
     [组图]福建民俗博物馆办
    相 关 文 章
    没有相关资讯
    实时切换big5/gb2312简繁体         ★★★
    实时切换big5/gb2312简繁体
    作者:不详 文章来源:不详 更新时间:2003-10-21 1:30:16
    【声明:转载此信息在于传递更多信息,其内容表达的观点并不代表本站立场,由这些信息所产生的一切后果本站不负任何责任。如果您对本信息有什么意见,欢迎和本站联系,谢谢!】http://CiDu.Net

    以前解决gb2312/big5实时转换的做法一般是修改Response.ContentEncoding

    string switchLanguage(String strLanguage){
     if(strLanguage.StartsWith("zh-cn")){
      Response.ContentEncoding=Encoding.GetEncoding(936);
      return "gb2312";
     }
     if(strLanguage.StartsWith("zh")){
      Response.ContentEncoding=Encoding.GetEncoding(950);
      return "big5";
     }
     Response.ContentEncoding=Encoding.GetEncoding(1252);
     return "iso-8859-1";
    }

    范例:
     switchLanguage(Request.UserLanguages[0]);
     
    但有些GB2312简体字没有对应的Big5,所以需要先转换成繁体的Gb2312,再进行转换
    如:“秋水无恨”的无,“中国”的国,就会显示“秋水?恨”和“中?”
    等需要先转化为“秋水無恨”和“中國”,再转化为Big5。//by http://CiDu.Net/

    而filter正好帮助我们实现实时切换,主要源代码如下(_sGB和_tGB是GB2312简繁体对应的库)。//by http://CiDu.Net/

          public override void Write(byte[] buffer, int offset, int count)
          {
             Encoding e=Encoding.GetEncoding(936);
             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));
          
          }
     

    范例:

    <%@ Page Language="C#" %>
    <script runat=server>
    protected void Page_Load(Object sender, EventArgs ev)
    {

     Response.ContentEncoding=Encoding.GetEncoding(936);
     if(Request["e"]!=null){
      Response.Filter = new qswhFilter.g2bFilter(Response.Filter);
      if(Request["e"]=="1")Response.Charset="big5";
     }
     userName.Text="秋水无恨(qiushuiwuhen)";
    }
    </script>
    <asp:hyperlink runat=server NavigateUrl="g2bFilter.aspx" Text="Gb2312简体" />
    <asp:hyperlink runat=server NavigateUrl="g2bFilter.aspx?e=0" Text="Gb2312繁体" />
    <asp:hyperlink runat=server NavigateUrl="g2bFilter.aspx?e=1" Text="Big5繁体" />
    hi,你好,我是<asp:label runat=server id=userName/>,欢迎来到<%="蓝色经典blueidea"%>。//by http://CiDu.Net/

    ps.如果web.config中有
     <globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/>
    可省略
     Response.ContentEncoding=Encoding.GetEncoding(936);

    cs 源代码和dll:
    g2bFilter.zip
    dll直接拷到应用程序的bin目录即可调用


    声明:以上信息资料大都是网上搜集而来,版权归作者,如有版权问题请留言告知我将马上改正。
    文中所提到的各种观点只是原文观点,各种说法未经一一确认。并不代表本站认可此观点!!
    资讯录入:ahui    责任编辑:ahui 
  • 上一篇资讯:

  • 下一篇资讯:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    点击数:923
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论