2015-01-12 4 views
8

Отправка шестнадцатеричной строки в параметре url и попытка ее преобразования в строку на стороне сервера. Преобразования строки ввода пользователя с помощью следующего яваскрипта кодирующего кода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 для русского характера Й в Java коде следующим образом

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")); 
Смежные вопросы