2015-01-12 34 views
8

यूआरएल पैरामीटर में हेक्स स्ट्रिंग भेजना और इसे सर्वर की तरफ स्ट्रिंग में बदलने की कोशिश कर रहा है। का उपयोग करके उपयोगकर्ता इनपुट स्ट्रिंग परिवर्तित जावास्क्रिप्ट एन्कोडिंग कोडorg.apache.commons.codec.DecoderException: वर्णों की विषम संख्या

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; 
} 

अब मैं जावा कोड में रूसी चरित्र Й के लिए हेक्स स्ट्रिंग 419 पार्स करने के लिए के रूप में

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(); 
    } 

इस प्रकार है कोशिश कर रहा हूँ, लेकिन यह निम्न त्रुटि

निम्नलिखित देता है
"org.apache.commons.codec.DecoderException: Odd number of characters." 

इसे कैसे हल किया जा सकता है। कई रूसी चरित्र देखते हैं के रूप में हेक्स कोड 3 अंकों है और इस की वजह यह है कि यह .toCharArray()

+1

समाधान मिला प्रयास करें सक्षम नहीं है ? – HeisenBerg

उत्तर

-1
के बजाय

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

कन्वर्ट करने के लिए इस

sb.append(new String(bytes,"Windows-1251")); 
संबंधित मुद्दे