Unicode characters are parsed and substituted before the source file is compiled. Your line of code is exactly the same as You need to escape the ? as Henry suggested. Keep in mind that the regular expression escape character has special meaning in Java Strings as well, so you need to escape that one as well.
Henry Wong wrote:The replaceAll() method takes a regex as the first parameter. And the "?" has special meaning in a regex. If you want it to behave as an literal question mark, then you will need to escape it.