<script language="javascript">
  str="家"     
  strEncode=UrlEncode(str);    
  strDecode=UrlDecode(strEncode);      
  alert(strDecode);  strDecode alert出来乱码;function UrlDecode(str){ 
    var ret=""; 
    for(var i=0;i<str.length;i++)
    { 
        var chr = str.charAt(i); 
        if(chr == "+")
        { 
            ret+=" "; 
        }
        else if(chr=="%")
        { 
            var asc = str.substring(i+1,i+3); 
            if(parseInt("0x"+asc)>0x7f)
            { 
                ret+=asc2str(parseInt("0x"+asc+str.substring(i+4,i+6))); 
                i+=5; 
            }
            else
            { 
                ret+=asc2str(parseInt("0x"+asc)); 
                i+=2; 
            } 
        }
        else
        { 
            ret+= chr; 
        } 
    } 
    return ret; 
}
function UrlEncode(str)      
    {       
        var ret="";       
        var strSpecial="!\"#$%&()*+,/:;<=>?[]^`{|}~%"; var tt="";      
        for(var i=0;i<str.length;i++)      
        {       
            var chr = str.charAt(i);       
            var c=str2asc(chr);       
            tt += chr+":"+c+"n";       
            if(parseInt("0x"+c) > 0x7f)      
            {       
                ret+="%"+c.slice(0,2)+"%"+c.slice(-2);       
            }      
            else      
            {       
                if(chr==" ")       
                    ret+="+";       
                else if(strSpecial.indexOf(chr)!=-1)       
                    ret+="%"+c.toString(16);       
                else       
                    ret+=chr;       
            }       
        }       
        return ret;       
    }
</script>
这JS是在网上找的。 是什么问题导致乱码的呢?