2015-01-12 15 views
8

Invio di stringa esadecimale nel parametro url e tentativo di convertirlo in stringa sul lato server. Conversione stringa di input dell'utente utilizzando seguente codice javascript codificaorg.apache.commons.codec.DecoderException: numero dispari di caratteri

function encode(string) { 
    var number = ""; 
     var length = string.trim().length; 
     string = string.trim(); 
     for (var i = 0; i < length; i++){ 
      number += string.charCodeAt(i).toString(16); 
      } 
     return number; 
} 

Ora sto cercando di analizzare la stringa esadecimale 419 per il personaggio russo Й nel codice Java come segue

byte[] bytes = "".getBytes(); 

    try { 
     bytes = Hex.decodeHex(hex.toCharArray()); 
     sb.append(new String(bytes,"UTF-8")); 
    } catch (DecoderException e) {  
     e.printStackTrace(); // Here it gives error 'Odd number of characters' 
    }catch (UnsupportedEncodingException e) {   
     e.printStackTrace(); 
    } 

ma dà errore seguente

"org.apache.commons.codec.DecoderException: Odd number of characters." 

Come può essere risolto. Come ci sono molti carattere russo avere il codice esadecimale a 3 cifre e per questo non è in grado di convertirlo in .toCharArray()

+1

Hai trovato la soluzione ? – HeisenBerg

risposta

-1

Invece di

sb.append(new String(bytes,"UTF-8")); 

Prova questa

sb.append(new String(bytes,"Windows-1251"));