对utf-8如何进行解码

来源:互联网 发布:awrrpt.sql 编辑:程序博客网 时间:2024/06/06 00:38

 

这些天被utf-8的编码方式搞得团团转~今天终于有了重大发现~就是对泡泡这咱编码的方式如何进行解码的问题~

  首先要明白这是什么编码方式~据我的理解这种编码其实是一种十六进制编码方式~所在只要把其中的&#x去掉就是我们很常见的十六进制编码了比如&#x6CE1去掉一些不必要字符后就是6CE1 ,而这就是十六进制的编码.把经转成十进制就是27873,所以要进这样的编码进行解~就只要再进行char转一下就是中文字符了,下面是例子:

java:

private static char tochar(String string) throws NumberFormatException
 {
  //  解码函数 
  String result=string.replace(";", "");
     result=result.replace("&#x", "");
     char result1;
  result1 = (char) Integer.parseInt(result, 16);
  return result1;   
        
 }

调用只要 :
String result="6CE1";
System.out.println(tochar(result));
输出的结果就是:泡

对于C#则要把其转换成0x6CE1再进行转换,例子如下

C#

public string AmpToUnicode(string expression, string delimiter)
  {
   //MessageBox.Show(expression);
   string result="";
   if(null == expression)
   {
    return result;
   }
   foreach(string s in expression.Split(delimiter.ToCharArray()))
   {
    if(s != string.Empty)
    {

     string tem = "0x"+s.Replace(";","");
     result += (char)Convert.ToUInt32(tem,16);
    }
   }
  return result;
}

调用方法:

string result="&#x6CE1";

System.Console.WriteLine(AmpToUnicode(result,"&#x"););

结果是:泡