在wap中文字unicode编码方法

3G时代就要指日到来了,现在手机的wap上网越来越流行,在手机浏览的时候,我们要进行了unicode编码了之后,手机才能看的汉字的,所以我们要进行编码。


#region private string UnicodeString( string inputString )
  /// <summary>
  /// 对字符串加入头"&#x"和尾";"
  /// </summary>
  /// <param name="_Str"></param>
  /// <returns></returns>
  private static string UnicodeString( string inputString )
  {
   return "&#x" + inputString + ";";
  }
  #endregion

  #region public static string Encode( string inputString )
  /// <summary>
  /// Unicode编码
  /// </summary>
  /// <param name="_CStr">源字符串</param>
  /// <returns>目的字符串</returns>
  public static string Encode( string inputString )
  {
   return encode( inputString );
  }

  private static string encode( string inputString )
  {
   inputString = inputString.Replace( "&", "&amp;" ).Replace( "#", "#" );
   string unicodeString = "";
   UnicodeEncoding unicodeEncoding = new UnicodeEncoding();
   byte[] bOut = unicodeEncoding.GetBytes( inputString );
   for( int i = 0; i < bOut.Length; i++ )
   {
    string lowChar = bOut[i].ToString("X");
    i++;
    string highChar = bOut[i].ToString("X");

    if ( lowChar.Length == 1 )
    {
     lowChar = "0" + lowChar;
    }

    if ( highChar.Length == 1 )
    {
     highChar ="0" + highChar;
    }

    //如果不是中文字符(高位为0)则解码,否则加入Unicode头"&#x"和";"

    if ( bOut[i] == 0 )
    {
     unicodeString += Decode( highChar + lowChar );
    }
    else
    {
     unicodeString += UnicodeString( highChar + lowChar );
    }
   }

   return unicodeString.Trim();
  }

  #endregion

  #region public static string Decode( string inputString )
  /// <summary>
  /// Unicode解码
  /// </summary>
  /// <param name="_UStr">源字符串</param>
  /// <returns>目的字符串</returns>
  public static string Decode( string inputString )
  {
   return decode( inputString );
  }

  private static string decode( string inputString )
  {
   string decodeString = "";
   string tempString = inputString.Replace( ";", "" ).Replace( "&#x", "" );
   for( int i = 0; i < tempString.Length; i = i + 4 )
   {
    int iASCII = int.Parse( tempString.Substring( i, 4 ), System.Globalization.NumberStyles.HexNumber );
    decodeString = decodeString + ( char ) iASCII;
   }
   return decodeString;
  }

  #endregion

posted on 2005-04-18 17:24  雾里寻踪  阅读(1255)  评论(1编辑  收藏  举报