• λ我爱Aspx >> Asp.Net >> 利用filter实时切换big5和gb2312,以及gb2312的简繁体
  • 利用filter实时切换big5和gb2312,以及gb2312的简繁体

  • :未知  Դ:internet  :2007-5-20 16:45:44  ؼ:
  • 以前解决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。

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

    public override void Write(byte[] buffer, int offset, int count)

    {

    Encoding e=Encoding.GetEncoding(936);

    string str=e.GetString(buffer,offset,count);

    Ҷƪл˵?
  • һƪJS(Unicode->GB)的精简版(仍含拼音和UrlEncode)
    һƪJs中实现拼音和UrlEncode的功能(利用GB和Unicode对照表)