本帖最后由 Java_Devil 于 2013-07-02 16:44:41 编辑

解决方案 »

  1.   


    GetStringUTFChars我就是这样写的。但是我不知道具体怎么处理。导致我的结果是char[0]='\',char[1]='0'这样。我贴下我的代码、
    jfieldID mcc_id = (*env)->GetFieldID(env, clazz, "merchCateCode",
    "Ljava/lang/String;");//取ID
    jstring mcc_emv = (*env)->GetObjectField(env, obj, mcc_id);//取值
    const char *mcc = (*env)->GetStringUTFChars(env, mcc_emv, 0);//转char*
    strcpy(ep.MerchCateCode, mcc);我这里是赋值给一个结构体里的一个属性,是通过javaBean的方式传递过去的。

    EMV_Param ep = new EMV_Param();
    ep.merchName = "China";
    ep.merchCateCode = "\0x00\0x01";我这里"China"这种字符串可以。但是那种十六进制形式的字符串咋就全为0了呢?
      

  2.   


    GetStringUTFChars我多试了几遍,不是0的为题。是显示char[0]='\300',char[1]='\200'
    不知道为啥会这样。java传的 "\0x00\0x01",c里看到的const char* 结果是'\300\200x00\300\200x01'能给我写个demo试验一下吗?我希望的效果是java传"\0x00\0x01"字符串,JNI里char[0]=0x00,char[1]=0x01