0

初めて 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";
        }

    }

では、これら 2 つのメソッドbytesToStringVerifyPINを javascriptに変換するにはどうすればよいでしょうか。

前もって感謝します

4

2 に答える 2

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

幸運を

于 2013-07-18T10:09:46.080 に答える
0

2 番目の方法の変換は次のとおりです。

function bytesToString(bytes) {
  var result = "";
  for (var i = 0; i < bytes.length; i++) {
    result += String.fromCharCode(parseInt(bytes[i], 2));
  }
  return result;
}
于 2013-07-18T10:09:52.123 に答える