下面代码在解析URL是正确的。不知道能不能同样用于邮件解析
 
   public static String decode( String org ) {
        StringBuffer sb = new StringBuffer();
        for( int i=0; i<org.length(); i++ ) {
            char c = org.charAt(i);
            switch ( c ) {
                case '+':
                    sb.append(' ');
                    break;
                case '%':
                    try {
                        sb.append( ( char )Integer.parseInt(
                                        org.substring( i+1, i+3 ), 16) );
                    } catch ( NumberFormatException e) {
                        throw new IllegalArgumentException();
                    }
                    i += 2;
                    break;
                default:
                    sb.append( c );
                    break;
            }
        }
        
        String result = sb.toString();
        try {
            byte[] inputBytes = result.getBytes( "8859_1" );
          
            result = new String( inputBytes, "MS936" );
        } catch (UnsupportedEncodingException e) {
        }
        return result;
    }