2013-07-18 5 views
1

Я закодировал свое приложение в java в первый раз, и теперь я должен его закодировать в javascript, и у меня есть некоторые проблемы при обработке строк и массивов в javascript и методах перекодирования преобразования в в обоих направлениях. Вот мой Java-код:javascript: String to Byte [] to String

public String VerifyPIN(String PIN, String successCb, String errorCb) { 
     byte[] AID = new byte[] {(byte)0xA0,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x04,(byte)0x10,(byte)0x10,(byte)0x11}; 
     byte[] tmpPIN = new byte[] {(byte)0x00, (byte)0x20, (byte)0x00, (byte)0x80, (byte)0x08, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00}; 
     System.arraycopy(PIN.getBytes(), 0, tmpPIN, 5, PIN.getBytes().length); 

     byte[] output = exchange(AID, tmpPIN); 
     String result = StringUtils.bytesToString(output); 

     if ("90 00".equals(result.trim())) { 
      //onSuccess() 
     } else { 
      //onError 
     } 

     return result.trim(); 
    } 

    public String bytesToString(byte[] bytes) { 
     if (bytes != null) 
     { 
      StringBuffer sb = new StringBuffer(); 
      for (byte b : bytes) { 
       sb.append(String.format("%02x ", b & 0xFF)); 
      } 
      return sb.toString(); 
     } 
     else { 
      return "N/A"; 
     } 

    } 

Так как я могу преобразовать эти два метода bytesToString и VerifyPIN в JavaScript.

спасибо заранее

+1

Riahi - ТАК не «напишите мой код бесплатно». Мы поможем вам с проблемами, с которыми вы сталкиваетесь при выполнении собственных программ, но мы не будем выполнять вашу работу за вас. –

+0

@StephenC: давайте подождем немного, некоторые haxxor будут –

+0

@AndreaLigios - Нет. Не ждите минуты. Это НЕ, как следует использовать SO. –

ответ

6

Вы можете использовать

function string2Bin(str) { 
    var result = []; 
    for (var i = 0; i < str.length; i++) { 
    result.push(str.charCodeAt(i)); 
    } 
    return result; 
} 

function bin2String(array) { 
    return String.fromCharCode.apply(String, array); 
} 

string2Bin('foo'); // [102, 111, 111] 
bin2String(string2Bin('foo')) === 'foo'; // true 

удачи

0

Для второго способа, то здесь является преобразование:

function bytesToString(bytes) { 
    var result = ""; 
    for (var i = 0; i < bytes.length; i++) { 
    result += String.fromCharCode(parseInt(bytes[i], 2)); 
    } 
    return result; 
}