我需要将我的Java信息放入一个字符串中,所以我使用String(byte[] arrB)
构造函数。
现在这个信息以char*
类型发送到C程序。从我的理解来看,在创建Java String
的过程中,它们被编码了,所以现在我需要获取回原始字节。
那么我该如何在C程序中做到呢?
在C端,我有以下字节:
7e 53 e9 94 d4 46 f5 7c 66 cf 85 34 18 5a ff 6 2d a3 89 48 d2 e4 46 b8 6b 43 ec 64 3a 67 f9 2 6d 12 ac e7 0 c4 99 52 68 76 76 77 12 2 de 7d 5b e7 4e 5 6 73 f4 fc 91 54 12 71 64 7a 25 3d
它们是用char*
存储的,但在Java中作为一个字符串传递,并且字符串是:
7E 53 EF BF BD EF BF BD 46 EF BF BD 7C 66 CF 85 34 18 5A EF BF BD 06 2D EF BF BD EF BF BD 48 EF BF BD EF BF BD 46 EF BF BD 6B 43 EF BF BD 64 3A 67 EF BF BD 02 6D 12 EF BF BD EF BF BD
你可以看到它们非常相似...
libpam
通信的程序。为了进行这种通信,我使用了libpam4j
包装器。我们可以通过使用pam_conv
(对话)将信息从应用程序传递给PAM模块,而唯一的方法是将其放入来自Java端的String中并调用一个libpam4j
函数。我没有指定编码... - João Rodrigues