VC与java的通信一直存在中文字符问题,java用unicode,而VC不是。如asklxf(xuefeng) 所说的,转成字节数组再处理(socket通信也存在这种问题)。

解决方案 »

  1.   

    你是不是需要将VC中的中文应用到java中,我这有一个转换函数:你试试!
    jstring windowsToJstring( JNIEnv* env, char* str )
    {
      AFX_MANAGE_STATE(AfxGetStaticModuleState());//这行可以不要
      jstring rtn = 0;
      int slen = strlen(str);
      wchar_t* buffer = 0;
      if( slen == 0 )
        rtn = env->NewStringUTF(str); //UTF ok since empty string
      else
      {
        int length = MultiByteToWideChar( CP_ACP, 0, (LPCSTR)str, slen, NULL, 0 );
        buffer = (wchar_t*)malloc( length*2 + 1 );
        if( MultiByteToWideChar( CP_ACP, 0, (LPCSTR)str, slen, (LPWSTR)buffer, length ) >0 )
          rtn = env->NewString( (jchar*)buffer, length );
      }
      if( buffer )
       free( buffer );
      return rtn;
    }这应该可以实现的,我就是这样实现将VC中的字符转换为java的unicode字符