First thing to do:
1. Add the following snippet to your theme’s functions.php
file (or use the Code Snippets plugin).
add_filter('site-reviews/get/review', function ($review, $post) {
glsr_debug($post, $review, $review->build()->values);
return $review;
}, 10, 2);
This will print the WordPress Post object, the Review object, and the generated review HTML for each review to your page.
Once you have done this, refresh the page and see if the ? characters exist in each of the three (Post object, Review object, HTML).
If they exist in the Post object, then these characters are being saved to the database when a review is submitted,
If they do not exist in the Post object but do in the Review object, then these characters are being introduced after the review has been fetched from the database.
If they do not exist in the Post object or Review object, but they do in the generated HTML, then these characters are being introduced when the review HTML is being generated.
Once I know this, I will be able to help further.
Also, after you have performed this test, please remove the code snippet.