That's not UTF8, that's just some obfuscation someone thought of to make the script less readable. You can convert every string to its character representation. For instance \x41 means 'captial A'.
You don't have to convert these values yourself. When you echo the string, it will show its actual value.
The accolades are just a way to use a string value for a variable name, so
${'foo'} = 10; will set the variable $foo to 10.
In your case, you got a script that's messing with your globals.
<pre><?php
//${"\x47\x4c\x4f\x42\x41\x4cS"}["y\x61\x72\x64s\x70\x71"]="va\x6cu\x65";
echo
'It means: ' .
'${"' . "\x47\x4c\x4f\x42\x41\x4cS" .
'"}["' . "y\x61\x72\x64s\x70\x71" . '"]="' .
"va\x6cu\x65" . '";<br>';
// = $GLOBALS['yardspq'] = 'value';
var_dump(${"\x47\x4c\x4f\x42\x41\x4cS"});
?>
$GLOBALS["yardspq"] = "value";isn't much better, really. You can simply replace all occurrences of\xNNwithchr(NN), but even if you do that, you still won't have a very readable script.