javascript: String to Byte[] to String

javascript: String to Byte[] to String

本文关键字:String to Byte javascript      更新时间:2023-09-26

我第一次用java编码我的应用程序,现在我应该用javascript编码它,我在处理javascript中的字符串和数组以及双向转换的重新编码方法方面遇到了一些问题。这是我的java代码:

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

那么,我如何将bytesToStringVerifyPIN这两个方法转换为javascript呢。

提前感谢

您可以使用

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

祝好运

对于第二种方法,这里是转换:

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